Java小白進階系列——ConcurrentHashMap源碼解析文章總目錄

      網友投稿 701 2022-05-30

      祝大家變得更強

      ~

      Java小白進階系列——ConcurrentHashMap源碼解析文章總目錄

      ConcurrentHashMap源碼解析_01 成員屬性、內部類、構造方法分析

      ConcurrentHashMap源碼解析_02 預熱(內部一些小方法分析)

      ConcurrentHashMap源碼解析_03 put方法源碼分析

      ConcurrentHashMap源碼解析_04 transfer方法源碼分析(難點)

      ConcurrentHashMap源碼解析_05 get、remove方法

      ConcurrentHashMap源碼解析_06 紅黑樹的代理類(TreeBin)

      下面是引用彤哥源碼公眾號文章中的片段: ConcurrentHashMap完整小節 上對并發HashMap的簡單總結~

      總結:

      (1)ConcurrentHashMap是HashMap的線程安全版本;

      (2)ConcurrentHashMap采用(數組 + 鏈表 + 紅黑樹)的結構存儲元素;

      (3)ConcurrentHashMap相比于同樣線程安全的HashTable,效率要高很多;

      (4)ConcurrentHashMap采用的鎖有 synchronized,CAS,自旋鎖,分段鎖,volatile等;

      (5)ConcurrentHashMap中沒有threshold和loadFactor這兩個字段,而是采用sizeCtl來控制;

      (6)sizeCtl = -1,表示正在進行初始化;

      (7)sizeCtl = 0,默認值,表示后續在真正初始化的時候使用默認容量;

      (8)sizeCtl > 0,在初始化之前存儲的是傳入的容量,在初始化或擴容后存儲的是下一次的擴容門檻;

      (9)sizeCtl = (resizeStamp << 16) + (1 + nThreads),表示正在進行擴容,高位存儲擴容郵戳,低位存儲擴容線程數加1;

      (10)更新操作時如果正在進行擴容,當前線程協助擴容;

      (11)更新操作會采用synchronized鎖住當前桶的第一個元素,這是分段鎖的思想;

      (12)整個擴容過程都是通過CAS控制sizeCtl這個字段來進行的,這很關鍵;

      (13)遷移完元素的桶會放置一個ForwardingNode節點,以標識該桶遷移完畢;

      (14)元素個數的存儲也是采用的分段思想,類似于LongAdder的實現;

      (15)元素個數的更新會把不同的線程hash到不同的段上,減少資源爭用;

      (16)元素個數的更新如果還是出現多個線程同時更新一個段,則會擴容段(CounterCell);

      (17)獲取元素個數是把所有的段(包括baseCount和CounterCell)相加起來得到的;

      (18)查詢操作是不會加鎖的,所以ConcurrentHashMap不是強一致性的;

      (19)ConcurrentHashMap中不能存儲key或value為null的元素;

      ConcurrentHashMap中有哪些值得學習的技術呢?

      (1)CAS + 自旋,樂觀鎖的思想,減少線程上下文切換的時間;

      (2)分段鎖的思想,減少同一把鎖爭用帶來的低效問題;

      (3)CounterCell,分段存儲元素個數,減少多線程同時更新一個字段帶來的低效;

      (4)@sun.misc.Contended(CounterCell上的注解),避免偽共享;

      (5)多線程協同進行擴容;

      Java 任務調度

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:戰略升級!眾簽科技入選普華永道中國第二期加速營
      下一篇:使用魔方AppCube感想
      相關文章
      国产91在线|亚洲| 亚洲国产精品综合久久一线 | 亚洲一区中文字幕久久| 亚洲乱亚洲乱少妇无码| 亚洲男人天堂2018av| 亚洲一区在线免费观看| 亚洲国产夜色在线观看| 亚洲码一区二区三区| 亚洲精品国产成人| 亚洲白色白色永久观看| 亚洲综合免费视频| 亚洲欧洲日本精品| 亚洲国产美女视频| 亚洲一区在线视频观看| 亚洲字幕AV一区二区三区四区| 中文字幕乱码亚洲精品一区| 亚洲综合精品伊人久久| 亚洲国产片在线观看| 亚洲影视自拍揄拍愉拍| 亚洲中文字幕AV在天堂| 亚洲国产精品无码久久久秋霞1| 亚洲日韩国产二区无码| 亚洲国产成人久久综合| 久久亚洲中文字幕无码| www国产亚洲精品久久久| 亚洲精品视频免费观看| 国产亚洲精品无码拍拍拍色欲| 激情小说亚洲色图| 国产综合激情在线亚洲第一页 | 亚洲永久精品ww47| 亚洲国产精品无码久久一线| 久久精品国产亚洲AV麻豆王友容| 亚洲午夜在线电影| 亚洲成年人电影在线观看| 亚洲熟妇av午夜无码不卡| 亚洲AV无码精品国产成人| 亚洲国产一区二区视频网站| 久久久久一级精品亚洲国产成人综合AV区 | 日本红怡院亚洲红怡院最新| 亚洲天堂中文资源| 亚洲一本之道高清乱码|