重温下happens before相关概念,记录下自己的一些理解。
一.基本概念
happens before是一种指令可见性的规则,它指的是如果A happens before B,那么A操作产生的结果对于B是可见的,并且happens before有传递性。
二.jvm中的happens before
jvm中的同步、volatile等机制满足了happens before规则,可以根据happens before对多线程中指令的可见性进行相应推导。
三.happens before对于指令重排限制
指令重排后的执行结果必须与指令重排前程序按照happens before规则的执行结果一致,否则不能进行指令重排。