1

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

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

4

1 回答 1

1

a 的并发性ConcurrentHashMap是在初始化时设置的,不会改变。如果您使用默认值 16,则无论散列大小调整多少,它始终为 16。

要记住几件事:

  • ConcurrentHashMap调整大小比普通HashMap. 您真的应该尝试为它提供关于条目数量的猜测,以便它不必调整大小。

  • 并发是在理想情况下可以同时写入映射的线程数。读取器不会锁定哈希,因此您在担心并发时不需要计算它们。

于 2013-03-17T04:31:25.397 回答