日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ConcurrentHashMap介绍

發(fā)布時(shí)間:2025/5/22 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ConcurrentHashMap介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ConcurrentHashMap

ConcurrentHashMap底層原理:

ConcurrentHashMap底層數(shù)據(jù)結(jié)構(gòu)和HashMap差不多 ,而在產(chǎn)生Hash沖突時(shí)使用synchronized加鎖來(lái) 和CAS模式來(lái)保證線程的安全!

CAS + synchronized + Node + 紅黑樹(shù)

ConcurrentHashMap的重要屬性:

private transient volatile int sizeCtl; 當(dāng)sizeCtl當(dāng)為負(fù)數(shù)時(shí),-1 表示正在初始化,-N 表示 N - 1 個(gè)線程正在進(jìn)行擴(kuò)容;當(dāng)為 0 時(shí),表示 table 還沒(méi)有初始化;當(dāng)為其他正數(shù)時(shí),表示初始化或者下一次進(jìn)行擴(kuò)容的大小。

構(gòu)造器:

initialCapacity:表示數(shù)組容量 loadFactor 加載因子 concurrencyLevel最大線程 底層保證了initialCapacity>=concurrencyLevel并且 loadFactor是2的次方倍。
并發(fā)度:程序運(yùn)行時(shí)能夠同時(shí)更新 ConccurentHashMap 且不產(chǎn)生鎖競(jìng)爭(zhēng)的最大線程數(shù)。默認(rèn)為 16,且可以在構(gòu)造函數(shù)中設(shè)置。當(dāng)用戶設(shè)置并發(fā)度時(shí),ConcurrentHashMap 會(huì)使用大于等于該值的最小2冪指數(shù)作為實(shí)際并發(fā)度(假如用戶設(shè)置并發(fā)度為17,實(shí)際并發(fā)度則為32)

public ConcurrentHashMap(int initialCapacity,float loadFactor, int concurrencyLevel) {if (!(loadFactor > 0.0f) || initialCapacity < 0 || concurrencyLevel <= 0)throw new IllegalArgumentException();if (initialCapacity < concurrencyLevel) // Use at least as many binsinitialCapacity = concurrencyLevel; // as estimated threadslong size = (long)(1.0 + (long)initialCapacity / loadFactor);int cap = (size >= (long)MAXIMUM_CAPACITY) ?MAXIMUM_CAPACITY : tableSizeFor((int)size);this.sizeCtl = cap;}

put() 方法

流程:

1、如果沒(méi)有初始化,就調(diào)用 initTable() 方法來(lái)進(jìn)行初始化; 2、如果沒(méi)有 hash 沖突就直接 CAS 無(wú)鎖插入; 3、如果需要擴(kuò)容,就先進(jìn)行擴(kuò)容; 4、如果存在 hash 沖突,就加鎖來(lái)保證線程安全,兩種情況:一種是鏈表形式就直接遍歷到尾端插入,一種是紅黑樹(shù)就按照紅黑樹(shù)結(jié)構(gòu)插入; 5、如果該鏈表的數(shù)量大于閥值 8,就要先轉(zhuǎn)換成紅黑樹(shù)的結(jié)構(gòu),break 再一次進(jìn)入循環(huán) 6、如果添加成功就調(diào)用 addCount() 方法統(tǒng)計(jì) size,并且檢查是否需要擴(kuò)容。

擴(kuò)容機(jī)制:

擴(kuò)容時(shí)機(jī):

(1) 元素個(gè)數(shù)達(dá)到擴(kuò)容閾值。 (2) 調(diào)用 putAll 方法,但目前容量不足以存放所有元素時(shí)。 (3) 某條鏈表長(zhǎng)度達(dá)到8,但數(shù)組長(zhǎng)度卻小于64時(shí)。 注意:桶上鏈表長(zhǎng)度達(dá)到 8 個(gè)或者以上,并且數(shù)組長(zhǎng)度為 64 以下時(shí)只會(huì)觸發(fā)擴(kuò)容而不會(huì)將鏈表轉(zhuǎn)為紅黑樹(shù) 。

擴(kuò)容過(guò)程:

構(gòu)建一個(gè)nextTable,大小為table的兩倍。 把table的數(shù)據(jù)復(fù)制到nextTable中。 注意:在復(fù)制過(guò)程支持多線程復(fù)制

Hashtable和 ConcurrentHashMap的區(qū)別:

hashtable和ConcurrentHashMap都是線程安全的 ,但是Hashtable是通過(guò)在修改數(shù)據(jù)時(shí)鎖住整個(gè)HashTable,效率較低 而ConcurrentHashMap是通過(guò)原子性的操作保證數(shù)據(jù)的讀取安全,然后再通過(guò)發(fā)生Hash沖突一個(gè)給這個(gè)數(shù)組位置加鎖,鎖的力度較小來(lái)保證 高并發(fā)下的線程安全的,而且他的擴(kuò)容也是支持多線程擴(kuò)容的,效率較高,Java5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的擴(kuò)展性更好。

總結(jié)

以上是生活随笔為你收集整理的ConcurrentHashMap介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美午夜 | 日批网址 | 国产免费黄色小视频 | 蜜桃av在线看 | 91www| 美女扒开让男人桶爽 | 欧美成人精品一区 | 乱妇乱女熟妇熟女网站 | 精品中文在线 | 国产尤物在线视频 | 少妇高潮a一级 | 日日爽爽| 亚洲婷婷在线观看 | 亚洲免费在线观看视频 | 日本免费高清视频 | 放荡闺蜜高h苏桃情事h | 日韩永久免费 | 青青草国产在线观看 | 亚洲男人天堂影院 | 亚洲第一天堂网 | 偷偷操不一样的久久 | 天天爽av | 一区二区在线免费观看视频 | 欧美私人情侣网站 | 永久免费毛片 | 成人精品三级av在线看 | xx视频在线观看 | 黄色网在线播放 | 干干操操 | 亚洲av无码一区二区三区在线播放 | 国产精品美女一区二区 | 亚洲在线中文字幕 | 日韩中文字幕2019 | 一节黄色片 | 中文婷婷 | 禁断介护av一区二区 | 国产第一页屁屁影院 | 欧美韩一区 | 亚洲国产精品成人综合久久久 | 日韩在线激情视频 | 男人天堂资源 | 日韩青青草 | 亚洲美女自拍 | 日本va欧美va欧美va精品 | 国产一区二区在线播放 | 丝袜一区二区三区 | 九九热视频在线播放 | 免费欧美大片 | 尤物视频在线播放 | 亚洲经典视频在线观看 | 国产乱人伦精品一区二区 | 亚洲视频福利 | 精品国产三级片在线观看 | 国产精品高潮呻吟久久久 | 国产精品图片 | 精品国产一区二区三区久久久 | 国产a级一级片 | 少妇大叫太粗太大爽一区二区 | 99精品影视 | 精品国产一区二区不卡 | 亚洲天天av| 在线观看一二三区 | 日韩插插插 | 狠狠干香蕉 | 日韩久久一区二区 | 国产熟女一区二区 | 91麻豆成人精品国产 | 国产三级观看 | 成人免费观看视频大全 | 真实乱偷全部视频 | 美女校花脱精光 | 久久看片网 | 日本精品黄 | 中文婷婷 | 精品视频免费在线观看 | 亚洲精品国产精品国自产观看浪潮 | 制服丝袜一区在线 | 97欧美视频| 欧美成人免费视频 | 性人久久久久 | 亚洲va久久久噜噜噜久久天堂 | 欧美综合亚洲 | 国产一区二区三区在线观看视频 | 在线免费观看视频网站 | 在线观看免费视频黄 | 亚洲欧美日韩色图 | 日韩欧美日本 | 国产精品玖玖玖 | 538国产精品一区二区免费视频 | 亚洲成人第一 | 日本a一级 | 中国老头性行为xxxx | 91二区 | 91插插插插插插插 | 国产福利免费 | 国产成人一区二区在线 | 欧美视频网站 | 中国人与拘一级毛片 | 国产日韩片 |