ConcurrentHashMap隨意分析
參考博文
https://www.jianshu.com/p/865c813f2726
繼承關係
繼承了AbstractMap抽象類和ConcurrentMap介面
資料結構
1.7:Segment陣列(每個Segement由陣列和連結串列組成(實際上一個Segement就是一個table陣列,table陣列裡有多個HashBucket,每個HashBucket由一個HashEntry組成 ),Segement是一種可重入鎖ReentrantLock,即分段鎖)。
1.8:拋棄使用Segement,table,由陣列和連結串列和紅黑樹組成,使用CAS和Synchronized關鍵字保證併發的安全。
執行緒安全性
執行緒安全的
JDK1.7裡容器有多把鎖,每一把鎖鎖一段資料(segement陣列,加上HashEntry單向佇列table)
JDK1.8版本:
①取消segments欄位,直接採用transient volatile HashEntry<K,V>[] table儲存資料,採用table陣列元素作為鎖,從而實現了對每一行資料進行加鎖,併發控制使用Synchronized和CAS來操作
將原先table陣列+單向連結串列的資料結構,變更為table陣列+單向連結串列+紅黑樹的結構.
引數
預設容量:16(2的整數倍)
負載因子:0.75
樹化閾值:8
鏈化閾值:6
最小樹化容量:64(指的是table的容量)
容器:Node陣列型別的table
元素存在
不允許空鍵或者空值
相關文章
- ConcurrentHashMap 原始碼分析HashMap原始碼
- Java 中 ConcurrentHashMap 原理分析JavaHashMap
- 隨意寫寫
- HashMap+concurrentHashMap 結構分析HashMap
- jdk原始碼分析之ConcurrentHashMapJDK原始碼HashMap
- hashmap和concurrenthashmap原始碼分析(1.7/1.8)HashMap原始碼
- ConcurrentHashMap 實現原理和原始碼分析HashMap原始碼
- 原始碼分析–ConcurrentHashMap與HashTable(JDK1.8)原始碼HashMapJDK
- 死磕 java集合之ConcurrentHashMap原始碼分析(一)JavaHashMap原始碼
- 併發程式設計 —— ConcurrentHashMap size 方法原理分析程式設計HashMap
- ConcurrentHashMap 原始碼分析03之內部類ReduceTaskHashMap原始碼
- 【JUC】JDK1.8原始碼分析之ConcurrentHashMap(一)JDK原始碼HashMap
- ConcurrentHashMapHashMap
- *.cpl檔案的妙用(隨意修改cpu顯示資料,記憶體顯示隨意修改等等)記憶體
- 【.NET】利用 IL 魔法實現隨心隨意的泛型約束泛型
- ConcurrentHashMap執行緒安全機制以及原始碼分析HashMap執行緒原始碼
- ConcurrentHashMap原理HashMap
- 多執行緒十二之ConcurrentHashMap1.8實現分析執行緒HashMap
- 併發程式設計——ConcurrentHashMap#transfer() 擴容逐行分析程式設計HashMap
- 垃圾收集分析的意義
- 工作隨意總結20240830
- 圖解ConcurrentHashMap圖解HashMap
- concurrentHashMap詳解HashMap
- Java ConcurrentHashmap 解析JavaHashMap
- 還不懂 ConcurrentHashMap ?這份原始碼分析瞭解一下HashMap原始碼
- 從原始碼分析ConcurrentHashMap執行緒安全和高效的特性原始碼HashMap執行緒
- 併發程式設計之 ConcurrentHashMap(JDK 1.8) putVal 原始碼分析程式設計HashMapJDK原始碼
- 什麼是ConcurrentHashMap?不同JDK下ConcurrentHashMap的區別?HashMapJDK
- 伴隨症狀 伴隨因素 迴歸分析 相關係數 多元分析
- 自定義按鈕 圖片標題位置隨意放置
- 概率的意義:隨機世界與大數法則隨機
- 打造可隨意安裝的完美Windows XP映象(轉)Windows
- 隨意的一點東西,還是期望被人看到
- 樹套樹 做題時隨意記一些
- 有米iOS惡意SDK分析iOS
- Zero Access惡意軟體分析
- 死磕 java集合之ConcurrentHashMap原始碼分析(二)——擴容全解析JavaHashMap原始碼
- 死磕 java集合之ConcurrentHashMap原始碼分析(一)——插入元素全解析JavaHashMap原始碼