Вопрос проверяет понимание формальной связи между volatile и гарантиями Java Memory Model.
Короткий ответ
Запись в volatile поле формирует отношение happens-before с последующим чтением этого поля.
Это гарантирует видимость всех предыдущих записей.
Таким образом volatile используется как точка синхронизации.
Это одна из самых простых форм happens-before в Java.
Она широко используется в lock-free паттернах.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.