happens-before简介
介绍:如果一个操作执行的结果对另一个操作可见,那么这二个操作之间必须存在happens-before关系。
规则:
一、一个线程中的每个操作,happens-before于改线程中的任意后续操作。
二、对于一个锁的解锁,happens-before于随后对这个锁的加锁。
三、对volatile域的写,happens-before于任意后续对volatole域的读。
四、如果A happens-beforeB,且B happens-before C,那么A happens-before C。
好处:它避免了Java程序员为了理解JMM(Java内存模型)提供的内存可见性保证而去学习复杂的重排序规则以及这些规则的具体实现办法。
注意:二个操作之间具有happens-before关系,并不意味着前一个操作必须要在后一个操作之前执行,仅仅要求前一个操作的执行结果对后一个操作可见。
2021-10-29
最新推荐文章于 2022-07-01 09:20:08 发布