最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

ConcurrentHashMap 實(shí)現(xiàn)原理概述

標(biāo)簽:
Java

ConcurrentHashMap 实现原理

  • HashMap 是非线程安全的,HashTable 是线程安全的,在不考虑性能问题的时候,多线程下可以使用 Hashtable 与 Collections.synchronizedMap(),这两种方式基本都是对整个 hash 表结构做锁定操作,这表明在锁定期间别的线程就需要等待,无疑性能不高,HashTable 容器在竞争激烈的并发环境下效率低下,因为所有访问 HashTable 的线程都必须竞争同一把锁

  • ConcurrentHashMap 使用锁分段技术,将数据分成一段一段的存储,给每一段数据配置一把锁,当一个线程占用锁访问其中一段数据时,其他段的数据也能被其它线程访问

  • 但有些方法需要跨段,如 size() 它可能需要锁定整个表而不是仅仅某个段,这需要按顺序锁定所有段,操作完毕后又按顺序锁定所有段的锁

ConcurrentHashMap结构


  • ConcurrentHashMap 是由 Segment 数组结构和 HashEntry 数组结构组成:

    • Segment 是一种 ReentrantLock

    • HashEntry 用于存储键值对数据

  • 一个 ConcurrentHashMap 里包含一个 Segment 数组,Segment 的结构与 HashMap 类似,是一种链表散列数据结构,一个 Segment 包含一个 HashEntry 数组,每个 HashEntry 是一个链表结构的元素

  • 每个 Segment 维护着一个 HashEntry 数组里的元素,当要对 HashEntry 的数据进行修改时,就必须先获得对应的 Segement 锁


作者:林塬
链接:https://www.jianshu.com/p/8be1d44f92d3


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消