成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Java并發(fā)編程之ConcurrentHashMap

qylost / 3426人閱讀

摘要:是一個(gè)線程安全的,它的主要功能是提供了一組和功能相同但是線程安全的方法??梢宰龅阶x取數(shù)據(jù)不加鎖,并且其內(nèi)部的結(jié)構(gòu)可以讓其在進(jìn)行寫(xiě)操作的時(shí)候能夠?qū)㈡i的粒度保持地盡量地小,不用對(duì)整個(gè)加鎖。

ConcurrentHashMap
ConcurrentHashMap是一個(gè)線程安全的Hash Table,它的主要功能是提供了一組和HashTable功能相同但是線程安全的方法。ConcurrentHashMap可以做到讀取數(shù)據(jù)不加鎖,并且其內(nèi)部的結(jié)構(gòu)可以讓其在進(jìn)行寫(xiě)操作的時(shí)候能夠?qū)㈡i的粒度保持地盡量地小,不用對(duì)整個(gè)ConcurrentHashMap加鎖。

ConcurrentHashMap的內(nèi)部結(jié)構(gòu)
ConcurrentHashMap為了提高本身的并發(fā)能力,在內(nèi)部采用了一個(gè)叫做Segment的結(jié)構(gòu),一個(gè)Segment其實(shí)就是一個(gè)類(lèi)Hash Table的結(jié)構(gòu),Segment內(nèi)部維護(hù)了一個(gè)鏈表數(shù)組,我們用下面這一幅圖來(lái)看下ConcurrentHashMap的內(nèi)部結(jié)構(gòu):

從上面的結(jié)構(gòu)我們可以了解到,ConcurrentHashMap定位一個(gè)元素的過(guò)程需要進(jìn)行兩次Hash操作,第一次Hash定位到Segment,第二次Hash定位到元素所在的鏈表的頭部,因此,這一種結(jié)構(gòu)的帶來(lái)的副作用是Hash的過(guò)程要比普通的HashMap要長(zhǎng),但是帶來(lái)的好處是寫(xiě)操作的時(shí)候可以只對(duì)元素所在的Segment進(jìn)行加鎖即可,不會(huì)影響到其他的Segment,這樣,在最理想的情況下,ConcurrentHashMap可以最高同時(shí)支持Segment數(shù)量大小的寫(xiě)操作(剛好這些寫(xiě)操作都非常平均地分布在所有的Segment上),所以,通過(guò)這一種結(jié)構(gòu),ConcurrentHashMap的并發(fā)能力可以大大的提高。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72350.html

相關(guān)文章

  • Java 8 并發(fā)教程:原子變量和 ConcurrentMa

    摘要:并發(fā)教程原子變量和原文譯者飛龍協(xié)議歡迎閱讀我的多線程編程系列教程的第三部分。如果你能夠在多線程中同時(shí)且安全地執(zhí)行某個(gè)操作,而不需要關(guān)鍵字或上一章中的鎖,那么這個(gè)操作就是原子的。當(dāng)多線程的更新比讀取更頻繁時(shí),這個(gè)類(lèi)通常比原子數(shù)值類(lèi)性能更好。 Java 8 并發(fā)教程:原子變量和 ConcurrentMap 原文:Java 8 Concurrency Tutorial: Synchroni...

    bitkylin 評(píng)論0 收藏0
  • java并發(fā)編程學(xué)習(xí)ConcurrentHashMap(JDK1.7)

    摘要:之前中提過(guò),并發(fā)的時(shí)候,可能造成死循環(huán),那么在多線程中可以用來(lái)避免這一情況。默認(rèn),當(dāng)容量大于時(shí),開(kāi)始擴(kuò)容并發(fā)數(shù),默認(rèn),直接影響和的值,以及的初始化數(shù)量。初始化的數(shù)量,為最接近且大于的辦等于的次方的值,比如,數(shù)量為,,數(shù)量為。 之前HashMap中提過(guò),并發(fā)的時(shí)候,可能造成死循環(huán),那么在多線程中可以用ConcurrentHashMap來(lái)避免這一情況。 Segment Concurrent...

    piglei 評(píng)論0 收藏0
  • 并發(fā) - 收藏集 - 掘金

    摘要:在中一般來(lái)說(shuō)通過(guò)來(lái)創(chuàng)建所需要的線程池,如高并發(fā)原理初探后端掘金閱前熱身為了更加形象的說(shuō)明同步異步阻塞非阻塞,我們以小明去買(mǎi)奶茶為例。 AbstractQueuedSynchronizer 超詳細(xì)原理解析 - 后端 - 掘金今天我們來(lái)研究學(xué)習(xí)一下AbstractQueuedSynchronizer類(lèi)的相關(guān)原理,java.util.concurrent包中很多類(lèi)都依賴于這個(gè)類(lèi)所提供的隊(duì)列式...

    levius 評(píng)論0 收藏0
  • 并發(fā) - 收藏集 - 掘金

    摘要:在中一般來(lái)說(shuō)通過(guò)來(lái)創(chuàng)建所需要的線程池,如高并發(fā)原理初探后端掘金閱前熱身為了更加形象的說(shuō)明同步異步阻塞非阻塞,我們以小明去買(mǎi)奶茶為例。 AbstractQueuedSynchronizer 超詳細(xì)原理解析 - 后端 - 掘金今天我們來(lái)研究學(xué)習(xí)一下AbstractQueuedSynchronizer類(lèi)的相關(guān)原理,java.util.concurrent包中很多類(lèi)都依賴于這個(gè)類(lèi)所提供的隊(duì)列式...

    fantix 評(píng)論0 收藏0
  • 并發(fā)

    摘要:表示的是兩個(gè),當(dāng)其中任意一個(gè)計(jì)算完并發(fā)編程之是線程安全并且高效的,在并發(fā)編程中經(jīng)??梢?jiàn)它的使用,在開(kāi)始分析它的高并發(fā)實(shí)現(xiàn)機(jī)制前,先講講廢話,看看它是如何被引入的。電商秒殺和搶購(gòu),是兩個(gè)比較典型的互聯(lián)網(wǎng)高并發(fā)場(chǎng)景。 干貨:深度剖析分布式搜索引擎設(shè)計(jì) 分布式,高可用,和機(jī)器學(xué)習(xí)一樣,最近幾年被提及得最多的名詞,聽(tīng)名字多牛逼,來(lái),我們一步一步來(lái)?yè)羝魄皟蓚€(gè)名詞,今天我們首先來(lái)說(shuō)說(shuō)分布式。 探究...

    supernavy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<