happens-before规则

我的未来我决定 提交于 2020-03-11 17:38:08

happens-before规则

  • 程序次序法则:线程中的每个动作A都happens-before于该线程中的每个动作B,其中,在程序中,所有动作B都出现在都能出现在A之后。
  • 监视器锁法则:对一个监视器的解锁happens-before于每一个后续对同一个监视器锁的加锁。
  • volatile变量法则:对volatile域的写入操作happs-before于每一个后续对同一个域的读写操作。
  • 线程启动法则:在一个线程里,对Thread.start的调用会happens-before于每一个启动线程的动作。
  • 线程终结法则:线程中的任何动作都happens-before于其他线程检测到这个线程已经终结、或者从Thread.join调用中成功返回,或Thread.isAlive返回false。
  • 中断法则:一个线程调用另一个线程的interrupt happens-before于被中断的线程发现中断。
  • 终结法则:一个对象的构造函数的结束happens-before于这个对象finalize的开始。
  • 传递性:如果A happens-before于B,且B happens-before于C,则A happens-before于C。

PS.

volatile修饰的变量,不仅具有可见性,还表示禁止指令重排序优化。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!