1、Segment
ConcurrentHashMap和HashMap思路相似,但前者支持多线程并发,相对复杂一些。ConcurrentHashMap是由一段段Segment组成的,Segment被称为分段锁或者槽
2、线程安全(Segment继承ReentrantLock进行加锁)
ConcurrentHashMap是一个Segment数组,Segment继承ReentrantLock进行加锁,所以每次加锁的是一个Segment,这样就能保证每个Segment是线程安全的,就能保证全局的线程安全。
3、并发度
concurrencyLevel:并发度,默认16个,ConcurrentHashMap默认有16个Segment,也代表着最多同时可以有16个线程并发操作,只要分别分布于不同的Segment,这个值在初始化时可以设置为其他值,初始化之后不能扩容。在每个Segment内部跟HashMap相似,不过要保证线程安全,会更麻烦些。
4、JAVA7
5、JAVA8