線程安全的 Map對(duì)比

線程安全的本質(zhì):
ConcurrentHashMap:本質(zhì)上是創(chuàng)建一個(gè)HashEntry數(shù)組去存儲(chǔ)元素。分段去鎖數(shù)據(jù)
Collections.synchronizedMap(): 本質(zhì)上是返回一個(gè) SynchronizedMap
主要的不同:
ConcurrentHashMap:更新的時(shí)候,它會(huì)鎖住部分?jǐn)?shù)據(jù) ,其他的數(shù)據(jù)能夠被其他線程調(diào)用
Collections.synchronizedMap():更新的時(shí)候鎖住所有數(shù)據(jù),其他線程無(wú)法介入,除非這個(gè)鎖釋放
注意:如果有許多更新操作,或者相對(duì)來(lái)說(shuō)較多的讀取操作,應(yīng)該選擇ConcurrentHashMap
另一個(gè)不同:
ConcurrentHashMap不會(huì)保留元素傳入的順序,和HashMap差不多

進(jìn)一步說(shuō),ConcurrentHashMap能保證不會(huì)出現(xiàn)ConcurrentModificationException 這個(gè)異常,當(dāng)一個(gè)線程在更新,
另一個(gè)線程也去訪問(wèn)的時(shí)候。
但是Collections.synchronizedMap()無(wú)法保證。

拓展:ConcurrentSkipListMap (since 1.6版本以后)兼顧上邊兩個(gè)的有點(diǎn),有序和不報(bào)異常

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載:https://www.cnblogs.com/xdouby/p/6026618.html 在JDK 1.4...
    境里婆娑閱讀 2,767評(píng)論 0 4
  • ConcurrencyMap 從這一節(jié)開始正式進(jìn)入并發(fā)容器的部分,來(lái)看看JDK 6帶來(lái)了哪些并發(fā)容器。 在JDK ...
    raincoffee閱讀 625評(píng)論 0 0
  • 一直想把這段記憶分享給大家,最近一直比較忙,終于在上周末把我圣誕節(jié)游玩的照片整理了一下,下面說(shuō)說(shuō)我的感受吧,游玩地...
    C莨閱讀 736評(píng)論 0 0
  • 嗶哩嗶哩的評(píng)論功能的體驗(yàn)創(chuàng)新 作者:朱宇軒,班級(jí):工業(yè)設(shè)計(jì)1601,課程:交互設(shè)計(jì)方法研究,指導(dǎo)老師:余永海。 選...
    槿萌曉宇閱讀 4,012評(píng)論 1 4
  • 我喜歡寫啊,所以我不怕你們?cè)趺磳?duì)我。不接受,不贊同,都無(wú)所謂,我只不過(guò)在做我喜歡的事罷了,這與你們無(wú)關(guān)。
    官山海閱讀 119評(píng)論 0 0

友情鏈接更多精彩內(nèi)容