java - ConcurrentHashMap默认并发级别的原因

标签 java concurrency concurrenthashmap

为什么ConcurrentHashMap的默认并发级别是16,为什么不是18?

最佳答案

我刚刚检查了并发映射的实现,发现了以下内容:

/**
 * The default concurrency level for this table. Unused but
 * defined for compatibility with previous versions of this class.
 */
private static final int DEFAULT_CONCURRENCY_LEVEL = 16;

它似乎只是为了与旧版本兼容而定义的。

对于为什么是 16 而不是 18 的问题。我猜这是因为由于按位运算和实现中更好的内存管理,它最好是 2 的幂。

关于java - ConcurrentHashMap默认并发级别的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50227582/

相关文章:

java - 用于检测类和方法签名级别上损坏的 JAR 依赖关系的工具

java - 表示 JList 中的自定义对象

java - 一个应用程序依赖于其他应用程序的结果,我们如何在Java中实现这一点?

singleton - EJB3 单例 session Bean 和 ConcurrentHashMap

java - ArrayList放入j.u.c.ConcurrentHashMap后会安全发布吗?

java - 通过拆分正则表达式从 Java 中的字符串中提取数字

java - 如何扩展此替换表达式以添加奇怪的字母字符,例如 "ü"?

java - MockMvc 是否有资格进行 WebFlux Controller 测试?

java - 在 JFrame Java 中闪烁

java - 如果并发级别高于 Bucket 数量,ConcurrenthashMap 如何管理?