1. java.util.concurrent 知识体系
hashtable 线程安全,但是效率低
concurrentHashMap 多线程环境下,线程安全,默认长度为16,推荐设置初始容量
2.hashTable
线程安全,但是性能低
CAS不涉及到上下文切换。(设计到多线程时,用synchronized锁时,要关闭偏向锁)
hashMap:
hashMap并发时,可能出现问题,两个线程往entry的同一索引处存值,可能会丢失。
hashTable:为解决这个问题,对put方法加锁,锁的是这个entry数组对象(synchronized)。因为锁细粒度比较大,所以性能差。
3.concurrentHashMap
jdk1.7 concurrentHashMap 的源码分析: jdk1.8效率更高
jdk1.8 concurrentHashMap 的源码分析: