Java 线程执行与变量可见性的 happen-before 关系

2019-07-31
阅读 2 分钟
1.9k
Happens-before 定义程序中所有操作的部分排序。为了保证执行操作Y的线程可以看到操作X的结果(X和Y是否出现在不同的线程中),X和Y之间必然存在一个先发生的关系。在没有happen-before 排序的情况下在两个操作之间,JVM可以根据需要自由重新排序(JIT编译器优化)。