Happens-before规则


##


title: Happens-before 规则
author: future
top: true
cover: false
coverImg: /medias/featureimages/11.jpg
toc: true
mathjax: false
summary: Happens-before 规则
categories:

  • Hexo

tags:

  • Github Actions
  • 持续集成
  • 语雀
  • Hexo
  • CI/CD

urlname: Happens-before

date: 2020-03-02 23:15:33

img:

password:

updated:


Happens-before 规则

Happens-before 规则来规范线程的执行顺序:

  • 程序次序规则:在单线程中,代码的执行是有序的,虽然可能会存在运行指令的重排序,但最终执行的结果和顺序执行的结果是一致的;
  • 锁定规则:一个锁处于被一个线程锁定占用状态,那么只有当这个线程释放锁之后,其它线程才能再次获取锁操作;
  • volatile 变量规则:如果一个线程正在写 volatile 变量,其它线程读取该变量会发生在写入之后;
  • 线程启动规则:Thread 对象的 start()方法先行发生于此线程的其它每一个动作;
  • 线程终结规则:线程中的所有操作都先行发生于对此线程的终止检测;
  • 对象终结规则:一个对象的初始化完成先行发生于它的 finalize()方法的开始;
  • 传递性:如果操作 A happens-before 操作 B,操作 B happens-before 操作 C,那么操作 A happens-before 操作 C;
  • 线程中断规则:对线程 interrupt()方法的调用先行发生于被中断线程的代码检测到中断事件的发生。

文章作者:   future
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 future !
 上一篇
内存模型 内存模型
JVM 内存模型的具体设计 1. 堆(Heap) 2. 程序计数器(Program Counter Register) 3. 方法区(Method Area) 4.虚拟机栈(VM stack) 5.本地方法栈(Native M
2020-09-03 future
下一篇 
堆的信息 堆的信息
[root@aliyun ~]# jps1476 WrapperSimpleApp27788 halo-latest.jar25245 Jps[root@aliyun ~]#[root@aliyun ~]#** jmap -heap 277
2020-09-02 future
  目录