volatitle

volatitleはコンパイラに最適化しないでとお願いするおまじないです。

コンパイラは最適化のために無駄な参照を省いたり、処理の順番を入れ変えたりしてくれます。

これが、余計なお世話だと、いった場合はvolatilteをつけて明示的に意思表示しましょ。

最後に、この特徴はjavaに言える。
もう一つ、volatitleの特徴として、thread間で共有されるときのタイミングから発生する意図せぬ挙動を防ぎます。

javaでthreadを複数立てたとき、共有空間メモリをもつが、処理の最適化の理由で、それぞれのスレッドに変数をコピー
することがあるらしい、だから、その変数を複数のスレッドで書き込んだりするとき、おかしくなる。これを明示的に
しないようにするのがvolatitleのもう一つの特徴。スレッドはそれぞれコピーせずに、共有空間の変数に直接働くように
コンパイルされる。

ゆえに、synchronized的な効果がある。でもそれよりもっと簡易的である。



参考にさせて頂きました。
[http://d.hatena.ne.jp/kanno_kanno/20120528/1338229536:title=ぼっち勉強会 [今日の一歩][java]volatileってなんだろう]