Java メモリ モデルによると、実行が整形式である限り、命令を並べ替えることができます。
だから、次のコードが次の出力を生成する可能性はありますか?
[コード][同じスレッド内]
long a = System.currentTimeMillis();
long b = System.currentTimeMillis();
long c = System.currentTimeMillis();
[出力]
a == 10, b == 20, c == 15
不可能な場合、JVM/実装はこれを防ぐために何をしますか?