jdk1.8为什么concurrentHashMap不用Reentrantlock
时间: 2023-10-31 15:36:33 浏览: 141
java中ConcurrentHashMap的读操作为什么不需要加锁
5星 · 资源好评率100%
在 JDK1.8 中,ConcurrentHashMap 采用了一种基于 CAS(Compare and Swap)的锁-Free 机制,避免了使用 ReentrantLock 等锁机制所带来的性能问题。具体来说,ConcurrentHashMap 内部使用了一种叫做 Segment 的结构来划分整个 Map,每个 Segment 可以看作是一个小的 HashMap,内部维护一个 HashEntry 数组,每个 HashEntry 又是一个链表结构,用于解决 Hash 冲突。在进行插入、删除、查询等操作时,只需要对对应的 Segment 进行操作,而不需要对整个 Map 进行加锁,从而实现了高并发的访问。
阅读全文