java - Java 中的 ConcurrentHashMap 中的重新散列会增加段数吗?

标签 java concurrency

重新散列会增加段数吗?还是在重新散列 CHM 时并发级别发生变化?

如果不是(很可能),那么为什么在 Java 中会出现这种行为,随着 CHM 中条目数量的增加,更多线程将访问同一段并且可能需要更高级别的并发性?

编辑:我想如果增加分段的功能被赋予,则需要锁定所有分段。是这个原因吗?

最佳答案

段的数量不会随着 ConcurrentHashMap 大小的增长而改变。可以访问集合的线程数不如访问映射的 Activity 线程数重要。如果你有 4 个核心,这最多是 4 个,即使他们所做的只是访问 map 而不做任何其他事情。这是一个极端的例子。

实际上,一次访问 map 的线程往往少于一个,有时有 2-4 个线程访问一个 map ,这在使用段时会有所帮助。

关于java - Java 中的 ConcurrentHashMap 中的重新散列会增加段数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6805119/

相关文章:

Java Swing - 如何覆盖托盘 'displayMessage' 弹出窗口?

concurrency - 高吞吐量写入 Java 8 并发中的变量?

Java 7 解析日期时间,秒数为小数点后 7 位

java - LinkedTransferQueue 线程安全吗?

Linux:这是并行运行脚本的正确方法吗?

java - volatile 变量和非 volatile 重新排序/可见性

Java:一个去重的延时队列

java - 推荐设计模式java动态调用

java - 由于 "unknown resource",无法通过 keycloak-admin-client 将用户添加到 Keycloak

java - 无法从 Tomcat 连接到 HBase