HashMap 与 ConcurrentHashMap 的区别是什么?
HashMap 不是线程安全的,而 ConcurrentHashMap 是线程安全的。
ConcurrentHashMap 采用锁分段技术,将整个Hash桶进行了分段segment,也就是将这个大的数组分成了几个小的片段 segment,而且每个小的片段 segment 上面都有锁存在,那么在插入元素的时候就需要先找到应该插入到哪一个片段 segment,然后再在这个片段上面进行插入,而且这里还需要获取 segment 锁,这样做明显减小了锁的粒度。
评论(1)
HashMap来自 java.util.HashMap包,ConcurrentHashMap来自java.util.concurrent包。