ConcurrentHashMap 采用了非常精妙的“分段锁”策略,ConcurrentHashMap 的主干是个 Segment 数组。
Segment 继承了 ReentrantLock ,所以它就是一种可重入锁(ReentrantLock)。在 ConcurrentHashMap,一个 Segment 就是一个子哈希表,Segment 里维护了一个 HashEntry 数组,并发环境下,对于不同 Segment 的数据进行操作是不用考虑锁竞争的。
ConcurrentHashMap 采用了非常精妙的“分段锁”策略,ConcurrentHashMap 的主干是个 Segment 数组。
Segment 继承了 ReentrantLock ,所以它就是一种可重入锁(ReentrantLock)。在 ConcurrentHashMap,一个 Segment 就是一个子哈希表,Segment 里维护了一个 HashEntry 数组,并发环境下,对于不同 Segment 的数据进行操作是不用考虑锁竞争的。