ConcurrentHashMap是支持高并发线程安全的HashMap,相较于HashTable使用synchronized来保证线程安全,concurrentHashMap采用分段锁的方式,在线程竞争激烈的情况下效率会高很多
ConcurrentHashmap中的分段锁称为Segement,它的内部结构是维护一个HashEntry数组,同时Segment还继承了ReentrantLock
当需要put元素的时候,并不是对整个ConcurrentHashMap加锁,而是先通过hashcode来判断它放在哪一个分段中,然后对该分段进行加锁。所以当多线程put的时候,只要不是放在同一个分段中,就可以实现并行插入
每一个Segment中的HashEntry就相当于是一个HashMap