Будет ли количество полос в Striped.lazyWeakReadWriteLock (int stripes) расти по мере необходимости? - PullRequest
0 голосов
/ 17 июня 2019

Пытаясь определить количество полос при звонке Striped.lazyWeakReadWriteLock(int stripes)

Javadoc говорит: @param stripes the minimum number of stripes (locks) required

Почему в Javadoc написано минимум ?Это привело меня к мысли, что количество полос - это только начальная емкость, и она будет расти по мере необходимости и уменьшаться до числа минимум , установленного при строительстве.Однако, глядя на код, кажется, что количество полос фиксировано.

Должен ли я делать: Striped.lazyWeakReadWriteLock(maximum_number_of_stripes) Или Striped.lazyWeakReadWriteLock(10) и ожидать его роста?

Я уже написал модульный тест, и это подтвердило, что оно должно быть Striped.lazyWeakReadWriteLock(maximum_number_of_stripes)

Итак, вопрос больше в попытках интерпретировать Javadoc.Почему написано минимум ?

1 Ответ

0 голосов
/ 20 июня 2019

Это минимум , потому что реализация выделяет фиксированное количество полос, по крайней мере, это число.

В частности, если вы посмотрите на реализацию, она округляется до степени два, чтобы сделать ее особенно эффективной для вычисления того, какой полосе соответствует данный хеш.

...