Striped.lazyWeakReadWriteLock(int stripes) 条纹中的条纹数量会根据需要增加吗?
Will the number of stripes in Striped.lazyWeakReadWriteLock(int stripes) stripes grow as needed?
调用时尝试确定条纹数 Striped.lazyWeakReadWriteLock(int stripes)
Javadoc 说:
@param stripes the minimum number of stripes (locks) required
为什么它在 javadoc 中说 minimum?这让我相信条带数只是初始容量,它会根据需要增长并缩小到构建时设置的 minimum 数量。
然而,查看代码似乎条纹的数量是固定的。
我应该做什么:Striped.lazyWeakReadWriteLock(maximum_number_of_stripes)
要么
Striped.lazyWeakReadWriteLock(10)
并期望它增长?
我已经写了单元测试并且确认它必须是
Striped.lazyWeakReadWriteLock(maximum_number_of_stripes)
所以问题更多是关于尝试解释 javadoc。为什么说 minimum?
这是最小值,因为实现分配的条带数量至少是该数量。
特别是,如果您查看实现,它会四舍五入为 2 的幂,以使其特别有效地计算给定哈希映射到哪个条带。
调用时尝试确定条纹数 Striped.lazyWeakReadWriteLock(int stripes)
Javadoc 说:
@param stripes the minimum number of stripes (locks) required
为什么它在 javadoc 中说 minimum?这让我相信条带数只是初始容量,它会根据需要增长并缩小到构建时设置的 minimum 数量。 然而,查看代码似乎条纹的数量是固定的。
我应该做什么:Striped.lazyWeakReadWriteLock(maximum_number_of_stripes)
要么
Striped.lazyWeakReadWriteLock(10)
并期望它增长?
我已经写了单元测试并且确认它必须是
Striped.lazyWeakReadWriteLock(maximum_number_of_stripes)
所以问题更多是关于尝试解释 javadoc。为什么说 minimum?
这是最小值,因为实现分配的条带数量至少是该数量。
特别是,如果您查看实现,它会四舍五入为 2 的幂,以使其特别有效地计算给定哈希映射到哪个条带。