Как понимать «переменная не участвует в инвариантах с другими переменными состояния при использовании ключевого слова volatile»?

From книга "Java Concurrency in Practice", стр. 26:

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

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

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

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

Как понять " Переменная не участвует в инвариантах с другими переменными состояния при использовании ключевого слова volatile"?

11
задан Adriano Repetti 11 April 2014 в 20:09
поделиться