简述ConCurrentHashMap

时间:2021-10-08 15:22:32

HashMap:

  从JDK1.2起,就有了HashMap,HashMap不是线程安全的,多线程操作时需要注意。

CurrentHashMap:

  在JDK1.5中,引入concurrent包,从此Map也有安全的了。

  ConcurrentHashMap源码中引入了一个“分段锁”的概念,HashTable在增加大小时是把整个部分锁住,而ConcurrentHashMap把一个大的Map拆分成N个小的HashTable(初始化默认长度16),put和get的时候,都是根据key.hashCode()算出放到哪个Segment中。当然速度也比HashTable快很多倍。