happen-before八条原则
happen-before是什么
happen-before是JMM最核心的概念,一共有8条规则,
JMM可以通过happens-before关系向程序员提供跨线程的内存可见性保证(如果A线程的写操作a与B线程的读操作b之间存在happens-before关系,尽管a操作和b操作在不同的线程中执行,但JMM向程序员保证a操作将对b操作可见)。
具体规则:
1. 单线程happen-before原则:在同一个线程中,书写在前面的操作happen-before后面的操作。
2. 锁的happen-before原则:同一个锁的unlock操作happen-before此锁的lock操作。
3. volatile的happen-before原则: 对一个volatile变量的写操作happen-before对此变量的任意操作。
4. happen-before的传递性原则: 如果A操作 happen-before B操作,B操作happen-before C操作,那么A操作happen-before C操作。
5. 线程启动的happen-before原则:同一个线程的start方法happen-before此线程的其它方法。
6. 线程中断的happen-before原则:对线程interrupt方法的调用happen-before被中断线程的检测到中断发送的代码。
7. 线程终结的happen-before原则:线程中的所有操作都happen-before线程的终止检测。
8. 对象创建的happen-before原则:一个对象的初始化完成先于他的finalize方法调用。
happen-before八条原则相关推荐
- 构建论文框架的八条原则
文章千古事.好的科研论文,对于作者本人来说,可以帮助晋升,获得更多基金资助,赢得荣誉:对于学科来说,则可以促进学术交流和科学发展. 决定SCI论文质量主要有三个要素:创新性.逻辑性和语言因素. 创新性 ...
- 职场与生活 八条原则 让你不再浪费时间和提高效率
Heidi Roizen女士一度是硅谷人人争相学习的典范.她曾创办自己的公司并管理了14年之久.后来,她担任苹果公司主管开发者关系的高级副总裁.现在,她是DFJ Venture的一位风投家,她还在斯坦 ...
- 楷书书法规则_硬笔书法中楷书结构八条原则
1.横平竖直2.重心平稳 3.笔画呼应 4.疏密有序 5.比例和谐 6.向背分明 .7.让就合理 8.伸展得当 [关键词] 平稳.呼应.横平.有序.和谐.分明.合理. [正文] 各种笔画的结合造就了汉 ...
- 谈谈架构设计的八条原则
架构设计不像数学公式或者物理定律,有章可循.很多时候,它是设计者在各种设想.各种顾虑的权衡中做出的最符合需求的智慧输出.但是,一些好的架构思路和原则,可以帮助设计者在决策时少走弯路,更靠近需求.在此跟 ...
- 禅道程序员的10条原则--转载--为了不忘
禅道程序员的10条原则 作者: Christian 来源: 伯乐在线 发布时间: 2012-04-23 22:52 阅读: 2802 次 原文链接 全屏阅读 [收藏] 英文原文:Th ...
- 转:不懂这八条,你的领导力只是“命令”而已
个人理解: 正直,信守承诺 花时间了解你的合作者,特别是你的下属 设定目标,确信并表达自己的愿景 为自己的目标,投入全部的热情和精力,奉献 积极.乐观,对努力从事的事业抱以期望 善待你的做的事,善待每 ...
- 深入分析游戏设计的8条原则
原文链接:http://gamerboom.com/archives/78680 深入分析游戏设计的8条原则 发布时间:2013-11-11 16:33:03 Tags: 反馈, 奖励, 平衡, 流 ...
- 敏捷宣言遵循的十二条原则
敏捷宣言遵循的十二条原则Twelve Principles behind the Agile Manifesto 我们遵循以下原则: We follow these principles: 我们最重要 ...
- 老年痴呆 数字化_设计老年人愉快数字体验的5条原则
老年痴呆 数字化 by Kaye Mao 毛凯(Kaye Mao) 设计老年人愉快数字体验的5条原则 (5 Principles for Designing Delightful Digital Ex ...
- 10、同步机制遵循的原则_我要遵循的10条原则
10.同步机制遵循的原则 by Haseeb Qureshi 由Haseeb Qureshi 我要遵循的10条原则 (10 Principles I Want to Live By) I just c ...
最新文章
- 2014年百度之星程序设计大赛 - 初赛(第二轮)Chess
- Centos 7和Centos 6的防火墙
- 剑指 Offer 06. 从尾到头打印链表(C语言)
- 利用Linq在RadCombobox中输出分类后的数据
- 使用深度学习TensorFlow框架进行图片识别
- 「题解」:[组合数学]:Perm 排列计数
- Linux系统初始化更新(更换阿里源)(centos7mini)
- 11个Javascript树形菜单
- 一些常用算法 练手的的代码
- Hirens Boot DVD 15.2 功能恢复版 v1.1 -- 制作U盘启动盘
- Java基础——Oracle(二)
- openstack排错
- Python笔记 #19# 实现bpnn
- iOS14:AirPods Auto Switching
- 阿里巴巴常用的 12 个后端开发工具,建议你快快收藏!
- 用java语言编写选课系统_求用JAVA为我写一个简单的选课系统程序,实现增,删,改,查功能...
- 第二周学习前端总结与感悟(一)
- 那些吸引眼球的微信标题你会么?
- 用java的swing组件实现简易的图书管理系统
- 18 禁警告!这个工具教你涂鸦画丁丁,数据还开源了
热门文章
- kepware怎么读modbus/tcp数据_DDR3读写数据调试
- playwright-python 截图、录制视频、录制接口(二)
- 《Data Algorithm》读书笔记七 — 购物篮分析
- 关于瑞星杀毒软件对浏览器速度的影响
- c语言打印变量高低字节,亲自动手——C语言变量所占字节,及自动类型转换
- 【视频通话卡顿】【语音通话卡顿】PC端QQ、微信每天接通语音电话或视频通话总会出现首卡半分钟左右的童鞋请进
- AAE 2018:Picsolve以全新拍摄体验增强亚洲景点的吸引力
- 幸福家庭杂志幸福家庭杂志社幸福家庭教育部2022年第1期目录
- 三大语言关于负数除整数余数和商的总结
- 高中数学一轮复习逆袭必要学习方法