HashMap不是线程安全的,ConcurrentHashMap引入了一个“分段锁”的概念,具体可以理解为把一个大的Map拆分成N个小的Hashtable,根据Key,hashCode()来决定把key放到哪个Hashtable中。
在ConcurrentHashMap中,就是把Map分为了N个Segment,put()和get()时都是根据key.hashCode()算出放到哪个Segment中。
ConcurrentHashMap中默认是把segments初始化为长度为16的数组。
ConcurrentHashMap的工作机制:通过把整个Map分为N个Segment(类似HashTable),可以提供相同的线程安全,但是效率提升N倍,默认提升16倍。
HashMap与ConcurrentHashMap的区别
最新推荐文章于 2022-06-20 11:29:49 发布