1.ConcurrentHashMap中,读写操作可以保证很高的性能
2.在进行读操作时不需要加锁,而在写操作时通过锁分段技术只对所操作的段加锁而不影响客户端对其他段的访问
3.在理想状态下,ConcurrentHashMap可支持16个线程执行并发写操作,及任意数量线程的读操作.
1.关于它的存储结构
a.JDK1.7中使用分段锁(ReentrantLock + Segment + HashEntry),相当于把一个HashMap分成多个段,每个段分配一把锁,这样支持多线程访问.锁粒度:基于Segment,包含多个HashEntry.
b.JDK 1.8 中使用 CAS + synchronized + Node + 红黑树。锁粒度:Node(首结点)(实现 Map.Entry<K,V>)。锁粒度降低了。
ConcurrentHashMap是什么
最新推荐文章于 2023-03-22 10:43:08 发布