happens-before JMM设计的核心目标:① 为程序员提供足够强的内存可见性保证 ② 对编译器和处理器的要求尽可能宽松一些 阐述操作之间的内存可见性 现在电脑都是多 CPU,并且都有缓存,这就导致了多线程直接的可见性问题 为了解决多线程的可见性问题,就衍生出来的 happens-before原则,让线程之间去遵守这些原则;其同时编译器和处理器会去优化我们编写的代码,这也是给了它们进行优化的约束. 在 JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在 happens-bef…