根据 Java 内存模型,只要执行格式良好,指令就可以重新排序。
所以我想知道,以下代码是否有可能产生以下输出?
[代码][在同一个线程中]
long a = System.currentTimeMillis();
long b = System.currentTimeMillis();
long c = System.currentTimeMillis();
[输出]
a == 10, b == 20, c == 15
如果不可能,那么 JVM / 实现会做什么来防止这种情况发生?