ConcurrentHashMap锁增加

时间:2013-03-11 19:00:51

标签: java java.util.concurrent concurrenthashmap

随着ConcurrentHashMap中的条目增加,将完成重新散列并将形成新的散列桶(16到32)。 问:锁(最初16个)也会增加(到32个)或16个锁会查看32个hashbuckets(每2个哈希桶1个锁)等等,因为条目不断增加(仅供参考我们可以将loadfactor设为1 )

更多问题:我想阅读ConcurretnHashMap的实现,请分享链接(Java Docs / code除外)

1 个答案:

答案 0 :(得分:1)

ConcurrentHashMap的并发性在初始化时设置,并且不会发生变化。如果您使用默认值16,那么无论哈希调整大小多少,它总是为16。

要记住几件事:

  • ConcurrentHashMap调整大小比普通HashMap更昂贵。您应该尝试提供一个关于条目数量的猜测,以便不必调整大小。

  • 并发性是理想情况下可以同时写入地图的线程数。读者不会锁定哈希值,因此当您担心并发时,不需要计算它们。