HashMap 和 ConcurrentHashMap 的区别
- 线程安全性不同, HashMap 是线程不安全的, ConcurrentHashMap 是线程安全的.
- ConcurrentHashMap 采用锁分段技术, 将整个 Hash 桶进行了分段 segment, 也就是将这个大的数组分成了几个小的片段 segment, 而且每个 segment 片段上面都有锁的存在, 那么在插入元素的时候就需要先找到应该插入到哪一个 segment 片段, 然后再在这个片段上进行插入, 而且这里还需要获取 segment 锁.
- ConcurrentHashMap 相比 HashTable 让锁的粒度更精细一些, 并发性能更好.