Как понять - Блокировка не требуется по любой другой причине во время обращения к переменной

Из книги "Параллелизм Java на практике", стр. 26:

Вы можете использовать переменные переменные только тогда, когда выполнены все следующие критерии:

  • Запись в переменную не зависит от ее текущего значения, или вы можете гарантировать, что только один поток когда-либо обновит значение;

  • Переменная не участвует в инвариантах с другими переменными состояния

а также

  • Блокировка не требуется по любой другой причине во время обращения к переменной.

В чем смысл последнего бита?

1 ответ

Решение

Последний пункт наименее технический: он просто утверждает, что вам нужны блокировки... если вам нужны блокировки. Это здесь просто для полноты, чтобы сделать список в целом всеобъемлющим. Блокировки могут понадобиться по ряду причин, которые выходят за рамки аспектов видимости / атомарности памяти, которые обсуждаются в этом разделе.

Другие вопросы по тегам