Как понять - Блокировка не требуется по любой другой причине во время обращения к переменной
Из книги "Параллелизм Java на практике", стр. 26:
Вы можете использовать переменные переменные только тогда, когда выполнены все следующие критерии:
Запись в переменную не зависит от ее текущего значения, или вы можете гарантировать, что только один поток когда-либо обновит значение;
Переменная не участвует в инвариантах с другими переменными состояния
а также
- Блокировка не требуется по любой другой причине во время обращения к переменной.
В чем смысл последнего бита?
1 ответ
Решение
Последний пункт наименее технический: он просто утверждает, что вам нужны блокировки... если вам нужны блокировки. Это здесь просто для полноты, чтобы сделать список в целом всеобъемлющим. Блокировки могут понадобиться по ряду причин, которые выходят за рамки аспектов видимости / атомарности памяти, которые обсуждаются в этом разделе.