ConcurrentHashMap中的concurrencyLevel

时间:2017-02-07 05:53:48

标签: java collections concurrenthashmap

如果ConcurrentHashMap大小增加,concurrencyLevel会是什么?

假设ConcurrentHashMap的初始容量为16.而默认的concurrencyLevel为16.如果容量在一段时间后按负载因子增加,现在容量增加为28.在这种情况下,concurrencyLevel会是什么?

也可以通过这些链接 Segmentation in ConcurrentHashMapModifying values in ConcurrentHashMap,但仍然不清楚。

提前致谢。

1 个答案:

答案 0 :(得分:7)

没有理由在阅读文档时考虑并发级别可能会发生变化。它仍然是在对象创建过程中设置的内容。 如有疑问,请浏览源代码:

http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/43cb25339b55/src/share/classes/java/util/concurrent/ConcurrentHashMap.java

如果初始容量低于指定的并发级别,目前它所做的只是增加了bin的数量。