ConcurrentHashMap 在Java7和Java8中的區(qū)別

Java7中ConcurrentHashMap使用的就是鎖分段技術,ConcurrentHashMap由多個Segment組成(Segment下包含很多Node,也就是我們的鍵值對了),每個Segment都有把鎖來實現(xiàn)線程安全,當一個線程占用鎖訪問其中一個段數(shù)據(jù)的時候,其他段的數(shù)據(jù)也能被其他線程訪問。

Java8中的鎖的粒度比Java7中更細了,Java8鎖住的一個某一個數(shù)組元素table[i](頭節(jié)點,該頭結點類型是鏈表頭結點或紅黑樹的頭結點),而Java7中segment鎖住的是一個HashEntry數(shù)組,相當于鎖住了多個數(shù)組元素;所以我感覺Java8中ConcurrentHashMap多線程環(huán)境下?put效率更高。

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

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

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