Вопрос проверяет понимание модели памяти Java и проблем видимости данных между потоками.
Короткий ответ
volatile гарантирует видимость изменений переменной между потоками. Если один поток изменил значение, другие увидят это изменение сразу. Он также запрещает некоторые переупорядочивания инструкций. При этом volatile не обеспечивает атомарность операций.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.