由于HashMap是一个线程不安全的容器,主要体现在容量大于总量负载因子发生扩容时会出现环形链表从而导致死循环.
因此需要支持线程安全的并发容器concurrentHashMap.
2.HashMap线程安全问题:jdk1.8之前:
Hash底层是数组和链表结合在一起使用也就是链表散列
jdk1.8之后:
jdk1.8在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为8)时,将链表转化为红黑树,以减少搜索时间。

2.原理jdk1.7之前:
concurrentHashMap采用了分段锁技术.
jdk1.8后:
抛弃了原有的分段锁,采用了CAS+synchronized,来保证并发安全.



