Java中Happens-Before原则与Volatile关键字确保有序性机制.pdfVIP

  • 2
  • 0
  • 约1.49千字
  • 约 3页
  • 2026-06-22 发布于北京
  • 举报

Java中Happens-Before原则与Volatile关键字确保有序性机制.pdf

volatile关键字和有序性的关系,volatlie是如何保证有序性的,如何避免发生指令重排的

java中有一个happens-before原则:

编译器、指令器可能对代码重排序,乱排,要守一定的规则,happens-before原则,只要符合happens-before的

原则,那么就不能胡乱重排,如果不符合这些规则的话,那就可以自己排序

1.

程序次序规则:一个线程内,按照代码顺序,书写面的操作先行发生于书写在后面的操作

2.

3.

锁定规则:一个unLock操作先行发生于后面对同一个锁的lock操作,比如说在代码里有先对一个lock.lock(),

lock.unlock(),lock.lock()

4.

5.

volatile变量规则:对一个volatile变量的写操作先行发生于后面对这个volatile变量的读操作,volatile变量写,再

是读,必须保证是先写,再读

6.

7.

传递规则:如果操作A先行发生于操作B,而操作B又先行发生于操作C,则可以得出操作A先行发生于操作C

8.

9.

线程启动规则:Thread对象的start()方法先行

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档