【并发编程篇18】ConcurrentHashMap

26 阅读1分钟

ConcurrentHashMap 是一种线程安全的高效Map集合

底层数据结构:

  • JDK7:采用Segment分段的数组+链表实现
  • JDK8:采用的数据结构跟HashMap1.8结构一样,数组+链表/红黑树

ConcurrentHashMap JDK7

image.png

ConcurrentHashMap JDK8

  • 采用CAS控制数组结点的添加
  • synchronized只锁定当前链表或红黑树的首结点,只要hash不冲突,就不会产生并发的问题,效率提高

image.png