什么是Java中的happen-before关系
来源:互联网 发布:类似于faceu的软件 编辑:程序博客网 时间:2024/06/05 05:53
“Let A and B represent operations performed by a multithreaded process. If A happens-before B, then the memory effects of A effectively become visible to the thread performing B before B is performed.”
简单说如果两个actionA和B是happes-before关系,那么action A对内存的操作多B可见。
http://preshing.com/20130702/the-happens-before-relation/
http://docs.oracle.com/javase/specs/jls/se5.0/html/memory.html
Java中如何实现happens-before关系:
1、程序次序规则:在一个单独的线程中,按照程序代码的执行流顺序,(时间上)先执行的操作happen—before(时间上)后执行的操作。2、管理锁定规则:一个unlock操作happen—before后面(时间上的先后顺序,下同)对同一个锁的lock操作。
3、volatile变量规则:对一个volatile变量的写操作happen—before后面对该变量的读操作。
4、线程启动规则:Thread对象的start()方法happen—before此线程的每一个动作。
5、线程终止规则:线程的所有操作都happen—before对此线程的终止检测,可以通过Thread.join()方法结束、Thread.isAlive()的返回值等手段检测到线程已经终止执行。
6、线程中断规则:对线程interrupt()方法的调用happen—before发生于被中断线程的代码检测到中断时事件的发生。
7、对象终结规则:一个对象的初始化完成(构造函数执行结束)happen—before它的finalize()方法的开始。
8、传递性:如果操作A happen—before操作B,操作B happen—before操作C,那么可以得出A happen—before操作C。
http://blog.csdn.net/ns_code/article/details/17348313
各种语言中可以实现happens-before的操作:
http://preshing.com/20130823/the-synchronizes-with-relation/
0 0
- 什么是Java中的happen-before关系
- Java中的happen-before规则
- Java中happen-before
- Java Happen-Before规则
- 重温jvm中的happen-before
- java memory happen-before rule
- Java中 Happen-before 规则总结
- java之happen before relationship 学习篇
- java多线程学习(十) happen before 原则
- happen-before 原则
- jls之happen-before
- Happen-Before规则
- happen-before 原则
- 同步的本质 java内存模型 happen before order
- happen—before规则介绍
- 指令重排序(happen-before)
- Java多线程 -- JUC包源码分析8 -- 对happen before的深刻理解
- Java的多线程机制系列:(四)不得不提的volatile及指令重排序(happen-before)
- 4:前缀中的周期
- 【C++】孙子问题,中国剩余问题
- itoa的实现
- 读书笔记:“集体智慧编程”之第九章:高阶分类-核方法与SVM
- sizeof strlen
- 什么是Java中的happen-before关系
- 深入理解servlet jdbc 数据库连接池
- 线程池的复用
- Svn基本使用
- Fedora环境下jre的Chrome浏览器的Plugin设置
- BT4 BT5根本就没有成功启动,,你那系统集成再多的工具,系统启动不了还是垃圾。脑残做的
- 时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)
- Android Launcher开发
- date2String