В java, по моим сведениям, volatile variable делает поток, который читает/записывает поток непосредственно на главный CPU (не в кеше каждого потока), поэтому измените видимость на другие потоки.
Вещь, которую я не знаю, такова: поэтому, почему эта работа (из volatile) может помешать компиляции/переупорядочиванию кода кода.
спасибо:)