其他分享
首页 > 其他分享> > 面试题:针对 ConcurrentHashMap 锁机制具体分析(JDK 1.7 VS JDK 1.8)?

面试题:针对 ConcurrentHashMap 锁机制具体分析(JDK 1.7 VS JDK 1.8)?

作者:互联网

  1. JDK 1.7 中,采用分段锁的机制,实现并发的更新操作,底层采用数组+链表的存储结构,包括两个核心静态内部类 Segment 和 HashEntry。

①、Segment 继承 ReentrantLock(重入锁) 用来充当锁的角色,每个 Segment 对象守护每个散列映射表的若干个桶;
②、HashEntry 用来封装映射表的键-值对;
③、每个桶是由若干个 HashEntry 对象链接起来的链表。

  1. JDK 1.8 中,采用Node + CAS + Synchronized来保证并发安全。取消类 Segment,直接用 table 数组存储键值对;当 HashEntry 对象组成的链表长度超过 TREEIFY_THRESHOLD 时,链表转换为红黑树,提升性能。底层变更为数组 + 链表 + 红黑树。

标签:面试题,1.7,JDK,1.8,链表,HashEntry,数组,Segment
来源: https://blog.csdn.net/fd2025/article/details/119149739