一、JDK1.7
在JDK1.7通过分段锁的形式来实现
将散列分成n段,每一个段都拥有自己的锁,通过继承lock锁来实现的,这样就锁的力度减少了,效率提高了n倍,没个段里面的每个数组有维护了自己的一个hashmap集合,这样来减少我们的冲突。
在JDK1.8通过CAS实现
JDK1.8引入了红黑树,将锁的细粒度进一步划分,每一个node的顶级节点,就是hashmap中的数组位置,通过CAS对node的顶级节点使用CAS进行创建头节点或者使用synchronized关键字加锁,每一个node下面将力度更一步细分,它还支持协助扩容。