直接来自ConcurrentHashMap javadocs:
更新操作之间允许的并发性由 可选的concurrencyLevel构造函数参数(默认为16),即 用作内部尺寸的提示。该表是内部的 分区以尝试允许指示的并发数 没有争用的更新。因为哈希表中的位置是 基本上是随机的,实际的并发性会有所不同。
当他们说:“这用作内部尺寸的暗示”时,我不明白这一点。不应该通过容量而不是concurrencyLevel确定大小?
答案 0 :(得分:2)
表是内部分区的 - 这意味着它们将表分成ConcurrencyLevel分区,希望它们能够在没有任何冲突的情况下进行多次并发更新。
不能保证散列数据会很好地落在这些分区中。