ConcurrentHashMap
ConcurrentHashMap
昨天面试的问到 ConcurrentHashMap这个集合,特来总结一下
简介:ConcurrentHashMap是Java中的一个线程安全且高效的HashMap实现。平时涉及高并发如果要用map结构
ConcurrentHashMap的结构
ConcurrentHashMap其实和hashMap的结构类似,当链表节点数超过指定阈值的话,也是会转换成红黑树的,大体结构也是一样的。
那么它是如何实现线程安全的呢?
答案:其中抛弃了原有的Segment 分段锁,而采用了 CAS + synchronized 来保证并发安全性。
HashMap、Hashtable、ConccurentHashMap三者的区别
HashMap线程不安全,数组+链表+红黑树
Hashtable线程安全,锁住整个对象,数组+链表
ConccurentHashMap线程安全,CAS+同步锁,数组+链表+红黑树
HashMap的key,value均可为null,其他两个不行。
这只是简单的一些总结,有什么不对的欢迎大家来留言探讨一下