HashMap 和 ConcurrentHashMap 的区别

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

你可能感兴趣的:(HashMap 和 ConcurrentHashMap 的区别)