ConcurrentHashMap 采用了非常精妙的"分段锁"策略,ConcurrentHashMap 的主干是个 Segment 数组(Segment的结构和HashMap类似,是一种数组和链表结构)。Segment 继承了 ReentrantLock,所以它就是一种可重入锁(ReentrantLock)。在 ConcurrentHashMap,一个 Segment 就是一个子哈希表,Segment 里维护了一个 HashEntry(一个 Segment 维护一个 HashEntry,HashEntry 用于存储键值对数据) 数组,并发环境下,对于不同 Segment 的数据进行操作是不用考虑锁竞争的
网友评论