我认为是ConcurrentHashMap is resized here。
我希望当负载系数达到某个阈值时会调整ConcurrentHashMap的大小。
但是,我看不出通过addCount
方法进行的调整大小与负载因子有什么关系。
调整ConcurrentHashMap的大小标准是什么?负载系数是其中之一吗?
答案 0 :(得分:3)
来自ConcurrentHashMap
的javadoc:
当占用率超过百分比时,将调整表的大小 阈值(名义上为0.75,但请参见下文)。
表太多时,表将动态扩展 冲突(即具有不同哈希码但属于 以表大小为模的相同插槽),并具有预期的平均值 每个映射大致维护两个bin的效果(对应 调整为0.75的负载因子阈值)。可能有很多 添加和删除映射时,围绕此平均值的方差,但是 总体而言,这保持了普遍接受的时间/空间权衡 哈希表。但是,调整此哈希或任何其他类型的哈希的大小 表可能是一个相对缓慢的操作。如果可能,这是一个 提供大小估算值作为可选的{@code initialCapacity}构造函数参数。额外的可选 {@code loadFactor}构造函数参数提供了进一步的方法 通过指定表密度来定制初始表容量 用于计算要分配给 给定数量的元素。另外,为了与以前的版本兼容 此类的版本,构造函数可以选择指定一个 预期的{@code concurrencyLevel}作为其他提示 内部上浆。