Striped.lazyWeakReadWriteLock(int条带)条带中的条带数量是否会根据需要增加?

时间:2019-06-17 02:56:14

标签: java concurrency guava

在调用Striped.lazyWeakReadWriteLock(int stripes)时尝试确定条纹数量

Javadoc说: @param stripes the minimum number of stripes (locks) required

为什么在Javadoc中说 minimum ?这使我相信条纹的数量只是初始容量,它会根据需要增加并缩小到构造时设置的最小数量。 但是看代码,条带的数量似乎是固定的。

我应该怎么做:Striped.lazyWeakReadWriteLock(maximum_number_of_stripes) 要么 Striped.lazyWeakReadWriteLock(10)并期望它增长?

我已经写了单元测试,并确认它必须是 Striped.lazyWeakReadWriteLock(maximum_number_of_stripes)

所以问题更多是关于尝试解释javadoc的问题。为什么说最小

1 个答案:

答案 0 :(得分:0)

这是 minimum ,因为该实现分配的固定条带数量至少为该数量。

特别是,如果您看一下实现,则将其舍入为2的幂,以使其特别有效地计算给定哈希映射到哪个条带。