HashMAp与ConcurrentHashMap的比较
1.Hashmap是一个散列表,它存储的内容是键值对(key-value)映射。不支持线程同步,不是线程安全的。在高并发环境下做插入操作,有可能出现环形链表。
2.避免HashMap线程安全的问题有很多办法,比如hashtable collections synchronizedmap,但是这些方法都是给整个结合加锁,使他们不能同时访问,同一时间其他的访问会阻塞。concurrenthashmap能兼顾线程安全和运行效率。
3.可以说,ConcurrentHashMap是一个二级哈希表。在一个总的哈希表下面,有若干个子哈希表。
1)不同Segment的写入是可以并发执行的。
2)同一Segment的读是可以并发执行的。
3)Segment的写入是需要上锁的,因此对同一Segment的并发写入会被阻塞。
https://www.sohu.com/a/205451532_684445