1.volatileキーワードの役割
1)視認性を確保:私は別のスレッドがvolatile変数に変更を使用する直前に、その新しい値を取得しますで、すぐに目に見える保証を呼び出し、変更した直後にその最新の値を更新しました。
2)並べ替え命令を禁止:JVM仮想マシンは、変数のアドレスを作成することができます割り当て、順序を最適化するための3つの操作を指しているが、これは、マルチスレッドのシナリオでエラーが発生する可能性があり、揮発性は、実行時の最適化でそのような仮想マシンを禁止。
それは安全であるかどうかを2.volatile
変数は即座に更新されるが、そのような私のような非アトミック操作のためにことを確認するために、視認性を確保するものの、安全でないが、++、その更新のすべてのステップは、すぐに保証するものではありません。
それが安全である3.volatile
読み取り専用、書き込み、またはその一つのスレッドだけを確実にするために、書き込みはありません