重新散列会增加段数吗?或者在重新散列 CHM 时并发级别会发生变化吗?
如果不是(很可能),那么为什么在 Java 中给出了这种行为,随着 CHM 中条目数量的增加,更多线程将访问同一段并且可能需要更高级别的并发性?
编辑:我想如果给出了增加段的功能,则需要锁定所有段。这就是原因吗?
随着 ConcurrentHashMap 大小的增加,段的数量不会改变。可以访问集合的线程数量并不像访问映射的活动线程数量那么重要。如果您有 4 个核心,则最多为 4 个,即使它们所做的只是访问地图而不执行其他操作。这是一个极端的例子。
实际上,一次访问映射的线程往往少于一个,有时有 2-4 个线程访问映射,这在使用段时会有所帮助。
| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |