Skip to content

ConcurrentHashMap

ConcurrentHashMap为什么是实现线程安全HashMap集合,具体实现上来说,JDK1.7(已过时)和JDK1.8是不同的

底层是数组+链表或红黑树。它是通过 CAS 或 synchronized 来实现线程安全的,并且它的锁粒度更小,查询性能也更高。

从结构上看,和JDK1.8的HashMap结构非常类似,ConcurrentHashMap都是Node

1.8 在 1.7 的数据结构上做了大的改动,采用红黑树之后可以保证查询效率(O(logn)), 甚至取消了 ReentrantLock 改为了 synchronized,这样可以看出在新版的 JDK 中对 synchronized 优化是很到位的!

加锁是给数组中的每一个头节点都加锁

网站当前构建日期: 2024.11.18