4

直接来自ConcurrentHashMap javadocs

更新操作之间允许的并发性由可选的 concurrencyLevel 构造函数参数(默认为 16)指导,该参数用作内部大小调整的提示。该表在内部进行了分区,以尝试允许指定数量的并发更新而不会发生争用。因为哈希表中的放置本质上是随机的,所以实际的并发性会有所不同。

当他们说:“用作内部尺寸调整的提示”时,我不明白这一点。大小不应该由容量而不是由 concurrencyLevel 决定吗?

4

1 回答 1

2

该表是内部分区的 - 这意味着他们将表划分为 ConcurrencyLevel 部门,希望他们可以在没有任何冲突的情况下进行如此多的并发更新。

但是,不能保证散列数据会很好地落在这些分区中。

于 2013-07-17T15:03:03.983 回答