HashMap 与 ConcurrentHashMap 的区别是什么?

HashMap 不是线程安全的,而 ConcurrentHashMap 是线程安全的。

ConcurrentHashMap 采用锁分段技术,将整个Hash桶进行了分段segment,也就是将这个大的数组分成了几个小的片段 segment,而且每个小的片段 segment 上面都有锁存在,那么在插入元素的时候就需要先找到应该插入到哪一个片段 segment,然后再在这个片段上面进行插入,而且这里还需要获取 segment 锁,这样做明显减小了锁的粒度。

发表评论

后才能评论

评论(1)

  • kite 普通 2021-08-22 4:50 下午

    HashMap来自 java.util.HashMap包,ConcurrentHashMap来自java.util.concurrent包。