ConcurrentHashMap
jdk1.7:采用分段锁,segment继承reentrantLock是线程安全的,默认是16个,支持16个线程并发执行。
HashEntry数组支持扩容,如果HashEntry地址存在数据,则会在地址下面挂一个链表,将数据放入链表中。

jdk1.8:采用分段锁

key和value不能为null
如何实现线程安全:
初始化数据采用CAS+volatile
put数据采用synchronized实现的线程安全
jdk1.7:采用分段锁,segment继承reentrantLock是线程安全的,默认是16个,支持16个线程并发执行。
HashEntry数组支持扩容,如果HashEntry地址存在数据,则会在地址下面挂一个链表,将数据放入链表中。

jdk1.8:采用分段锁

key和value不能为null
如何实现线程安全:
初始化数据采用CAS+volatile
put数据采用synchronized实现的线程安全