当前位置: 首页>后端>正文

JDK7 ConcurrentHashMap 关键技能点

  • 使用分段锁 Segment。由 Hashtable 的锁住整个表,HashMap 的不锁,到锁住表的一部分。线程同步使用的是 Lock 锁。

  • 结构图


    JDK7 ConcurrentHashMap 关键技能点,第1张
  • ConcurrentHashMap 是由 Segment 数组和 HashEntry 数组结构组成

  • Segment 是一种可重入锁 ReentrantLock,在 ConcurrentHashMap 里扮演锁的角色,HashEntry 则用于存储键值对数据

  • 一个 ConcurrentHashMap 里包含一个 Segment 数组,Segment 的结构和 HashMap 类似,是一种数组和链表结构。一个 Segment 里包含一个 HashEntry 数组,每个 HashEntry 是一个链表结构的元素。每个Segment 守护着一个 HashEntry 数组里的元素,当对 HashEntry 数组的数据进行修改时,必须首先获得它对应的 Segment 锁。


https://www.xamrdz.com/backend/36w1920682.html

相关文章: