Java 内存模型中的 happen before原则 - guguoyi/WorkLine GitHub Wiki

  • 程序次序规则:在一个单独的线程中,按照程序代码的执行流顺序,先执行的操作happen-before后执行的操作
  • 管理锁定规则:一个unlock操作happen-before后面对同一个锁的lock操作
  • volatile规则变量: 对一个volatile变量的写操作happen-before后面对该变量的读操作
  • 线程启动规则: Thread对象的start()方法happen-before此线程的每一个动作
  • 线程终止规则: 线程的所有操作都happen-before对此线程的终止检测,可以通过Thread.join()方法结束、Thread.isAlive()的返回值等手段检测到线程已经终止执行
  • 线程中断规则: 对线程interrupt()方法的调用happen-before发生于被中断线程的代码检测到中断时事件的发生
  • 对象终结规则: 一个对象的初始化完成happen-before的finalize()方法的开始
  • 传递性: 如果操作A happen-before操作B, 操作B happen-before C,那么得出A happen-before 操作C.