色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ConcurrentHashMap的概述

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 14:42 ? 次閱讀

數據結構

jdk1.7

jdk1.8

如果頭節點是Node類型,其后就是一個普通的鏈表;如果頭節點是TreeNode類型,它的后面就是一顆紅黑樹,TreeNode是Node的子類。鏈表和紅黑樹之間可以相互轉換:初始的時候是鏈表,當鏈表中的元素超過某個閾值時,把鏈表轉換成紅黑樹;反之,當紅黑樹中的元素個數小于某個閾值時,再轉換為鏈表。

歷史版本對比

從JDK1.7版本的ReentrantLock+Segment+HashEntry,到JDK1.8版本中synchronized+CAS+HashEntry+紅黑樹。代碼量從原來的1000多行變成了 6000多 行,實現上也和原來的分段式存儲有很大的區別。

1.數據結構

取消了Segment分段鎖的數據結構,取而代之的是數組+鏈表+紅黑樹的結構。使用紅黑樹,當一個槽里有很多元素時,查詢時間復雜度從原來的遍歷鏈表O(n),變成遍歷紅黑樹O(logN),Hash沖突的問題也會得到較好的解決

2.鎖的粒度:

JDK1.7采用segment的分段鎖機制實現線程安全,其中segment繼承自ReentrantLock。JDK1.8采用CAS+Synchronized保證線程安全。原來是對需要進行數據操作的Segment加鎖,現調整為對每個頭節點分別加鎖,其并發度,就是Node數組的長度,初始長度為16,這降低了鎖的粒度。

3.并發的擴容:

在JDK 7中,一旦Segment的個數在初始化的時候確立,不能再更改,并發度被固定。之后只是在每個Segment內部擴容,這意味著每個Segment獨立擴容,互不影響,不存在并發擴容的問題。但在JDK 8中,相當于只有1個Segment,當一個線程要擴容Node數組的時候,其他線程還要讀寫,因此處理過會更復雜。

4.代碼實現上的區別:

sizeCtl:

多個線程的共享變量,是操作的控制標識符,它的作用不僅包括threshold的作用,在不同的地方有不同的值也有不同的用途。

-1代表正在初始化

-N 表示正在進行擴容操作。此時sizeCtl的高16位代表的是當前的容量(并不是數值等于容量大小) 低16位代表線程數 容量16的話計算rs = 32795 也就是 1000 0000 0001 1011 可以看出不同的容量對應不同rs值, rs << 16 的值為 11111111111111111111111111111111 10000000000110110000000000000000, 0-15位用于統計參與擴容的線程數, 16-31位用于代表擴容時容器的大小。

正數或0代表hash表還沒有被初始化,這個數值表示初始化或下一次進行擴容的大小,這一點類似于擴容閾值的概念。后面可以看到,它的值始終是當前ConcurrentHashMap容量的0.75倍,這與loadfactor是對應的。

MOVED,TREEBIN,RESERVED :

MOVED,TREEBIN,RESERVED是用來表示特殊節點的哈希值。該類特殊節點均不含實際元素,且其哈希值被設置為負數和普通節點區分。


// ForwardingNode標記節點的hash值(表示正在擴容)

static final int MOVED = -1; // hash for forwarding nodes

// TreeBin節點的hash值,它是對應桶的根節點

static final int TREEBIN = -2; // hash for roots of trees

static final int RESERVED = -3; // hash for transient reservations

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7081

    瀏覽量

    89177
  • 代碼
    +關注

    關注

    30

    文章

    4802

    瀏覽量

    68736
收藏 人收藏

    評論

    相關推薦

    緩存之美——如何選擇合適的本地緩存?

    Guava cache是Google開發的Guava工具包中一套完善的JVM本地緩存框架,底層實現的數據結構類似于ConcurrentHashMap,但是進行了更多的能力拓展,包括緩存過期時間設置、緩存容量設置、多種淘汰策略、緩存監控等,下面簡單介紹下這些功能及其使用方式。
    的頭像 發表于 11-17 14:24 ?352次閱讀
    緩存之美——如何選擇合適的本地緩存?

    AM/DM37x概述

    電子發燒友網站提供《AM/DM37x概述.pdf》資料免費下載
    發表于 10-14 11:32 ?0次下載
    AM/DM37x<b class='flag-5'>概述</b>

    TAS2563設備特性和控制概述

    電子發燒友網站提供《TAS2563設備特性和控制概述.pdf》資料免費下載
    發表于 10-08 11:49 ?0次下載
    TAS2563設備特性和控制<b class='flag-5'>概述</b>

    TI Wi-Fi測試策略概述

    電子發燒友網站提供《TI Wi-Fi測試策略概述.pdf》資料免費下載
    發表于 09-20 10:46 ?1次下載
    TI Wi-Fi測試策略<b class='flag-5'>概述</b>

    Jacinto 7顯示子系統概述應用說明

    電子發燒友網站提供《Jacinto 7顯示子系統概述應用說明.pdf》資料免費下載
    發表于 09-14 10:00 ?0次下載
    Jacinto 7顯示子系統<b class='flag-5'>概述</b>應用說明

    轉換 SDIO 的電壓產品概述

    電子發燒友網站提供《轉換 SDIO 的電壓產品概述.pdf》資料免費下載
    發表于 09-13 10:29 ?0次下載
    轉換 SDIO 的電壓產品<b class='flag-5'>概述</b>

    PCle鏈路培訓概述

    電子發燒友網站提供《PCle鏈路培訓概述.pdf》資料免費下載
    發表于 09-11 09:16 ?0次下載
    PCle鏈路培訓<b class='flag-5'>概述</b>

    AM263到AM263P遷移概述

    電子發燒友網站提供《AM263到AM263P遷移概述.pdf》資料免費下載
    發表于 08-30 10:58 ?0次下載
    AM263到AM263P遷移<b class='flag-5'>概述</b>

    毫米波生產測試概述

    電子發燒友網站提供《毫米波生產測試概述.pdf》資料免費下載
    發表于 08-27 09:44 ?0次下載
    毫米波生產測試<b class='flag-5'>概述</b>

    內部補償高級電流模式(ACM)概述

    電子發燒友網站提供《內部補償高級電流模式(ACM)概述.pdf》資料免費下載
    發表于 08-26 14:55 ?1次下載
    內部補償高級電流模式(ACM)<b class='flag-5'>概述</b>

    人工智能概述

    人工智能關鍵技術概述
    發表于 07-17 17:17 ?0次下載

    Parksonx XC6206系列線性穩壓器概述

    Parksonx XC6206系列線性穩壓器概述
    的頭像 發表于 05-30 13:28 ?981次閱讀
    Parksonx XC6206系列線性穩壓器<b class='flag-5'>概述</b>

    基站供配電系統概述

    通信基站供配電系統概述基站供配電系統基本組成基站供配電系統特點功能?機房環境控制系統?
    發表于 05-06 10:13 ?1次下載

    linux命令概述

    電子發燒友網站提供《linux命令概述.pdf》資料免費下載
    發表于 03-11 09:18 ?3次下載

    光伏逆變器拓撲概述及關鍵技術

    光伏逆變器拓撲概述及關鍵技術
    的頭像 發表于 02-21 09:47 ?853次閱讀
    光伏逆變器拓撲<b class='flag-5'>概述</b>及關鍵技術
    主站蜘蛛池模板: 久草在在线免视频在线观看| 97资源总站(中文字幕)| 肉耽高h一受n攻| RUN AWAY无删减全集动漫| 牛牛自拍国产免费视频| 国产剧情麻豆mv| 伊人久久大香线蕉综合电影| 全黄h全肉细节全文| 国产成人一区二区三中文| 在线成年av动漫电影| 欧美亚洲曰韩一本道| 花蝴蝶高清在线视频免费观看| 99re久久热在线播放快| 京香在线播放| 亚洲日韩国产成网站在线| 国产精品人妻无码久久久奥特曼 | 暗卫受被肉到失禁各种PLAY| 在线 国产 欧美 专区| 羲义嫁密着中出交尾gvg794| 久久免费国产视频| 国产精品久久久久成人免费| 久久精品熟女亚洲AV国产| 无罩看奶禁18| 成人国产精品玖玖热色欲| 精品国产乱码久久久久久人妻| 小学生偷拍妈妈视频遭性教育 | 好大的太粗好深BL| 亚洲国产精品综合久久一线| 国内外成人免费在线视频| 亚洲一区在线播放| 绝对诱惑在线试听| 我和黑帮老大第365天第2季在线 | 无码AV熟妇素人内射V在线| 国产女合集小岁9三部| 日韩精品真人荷官无码| 国产成人久久精品AV| 亚洲成在人线视频| 国产不卡视频在线观看| 午夜日本大胆裸艺术| 精品视频在线播放| 67194线在线精品观看|