volatile变量规则:对一个变量的写操作先行发生于后面对这个变量的读操作
2017-02-16 22:49
337 查看
如果单看一句话的,基本上是无法理解的。这句话的意思,并不是“对于一个变量a,a=5这样的写操作,在b=a这样的读操作之前执行”的意思,这句话实际上就是体现happens-before原则具备传递性。
想要解理这句话的意思可以看下面的文章:
- Java多线程:volatile变量、happens-before关系及内存一致性:这章文章的“什么是 happens-before 关系?”部分以下的一部分,举了一个传递的例子。例子中主要说明的是“和volatile变量相关的变量”的变化。
- 深入理解Java内存模型(四)——volatile:看“volatile写-读建立的happens before关系”以后的内容,在内容的级别讲了是如何实现的。用了volatile变量后,对volatile变量写之前的数据,在读volatile变量之后,都有了“可见性”(必须是在“读volatile变量”之后,才有可见性)
- [译] Java Volatile 关键字详解:这个也写的不错,但没有上两篇文章,不太理解。
- 【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码):讲了happens-before,还有最下面的volatile和final的变量的“可见性”的说明
- Java并发编程:volatile关键字解析:“这句话实际上就是体现happens-before原则具备传递性”这句话就出自这里
想要解理这句话的意思可以看下面的文章:
- Java多线程:volatile变量、happens-before关系及内存一致性:这章文章的“什么是 happens-before 关系?”部分以下的一部分,举了一个传递的例子。例子中主要说明的是“和volatile变量相关的变量”的变化。
- 深入理解Java内存模型(四)——volatile:看“volatile写-读建立的happens before关系”以后的内容,在内容的级别讲了是如何实现的。用了volatile变量后,对volatile变量写之前的数据,在读volatile变量之后,都有了“可见性”(必须是在“读volatile变量”之后,才有可见性)
- [译] Java Volatile 关键字详解:这个也写的不错,但没有上两篇文章,不太理解。
- 【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码):讲了happens-before,还有最下面的volatile和final的变量的“可见性”的说明
- Java并发编程:volatile关键字解析:“这句话实际上就是体现happens-before原则具备传递性”这句话就出自这里
相关文章推荐
- jQuery的函数,有些直接就用$this(表示当前操作的标签),而也不见this在哪里定义过,这个this究竟谁什么?答:把this当成在内从中存在的JavaScript的一个变量即可,一个关键字
- 利用反射机制编写一个程序,这个程序能把类中所有的成员变量赋值,并把操作信息输出到控制台。
- volatile变量在多线程同步时运用的优点: 1、锁一次只允许一个线程访问值,volatile 允许多个线程执行读操作,因此当使用 volatile 保证读代码路径时,要比使用锁执行全部代码路径获得
- C/C++__定义一个字节中的位变量___操作
- Windows 系统常变量 赋值的一个规则 位与 加运算 异同
- 给你一个文件,名称为A.cs,你怎么提取这个文件中的所有静态变量?
- 享变量内有一个函数指针,是外部传进来的。 可我一使用这个函数指针,就出错了
- 根据C++标准,如果const的引用被初始化为对一个临时变量的引用,那么它会使这个临时变量的生命期变得和它自己一样
- 数据库存储过程中定义一个变量,通过sql语句在数据表中获取这个变量值的方法。
- 设计一个电视机类,成员变量包括电视机编号、生产厂家、品牌名称、大小、开关状态,并可以对其进行相应操作,如打开电视、提高/降低音量、更换频道等。
- asp.net访问access 发生了未处理的异常 "操作必须使用一个可更新的查询"错误
- jsp中操作Excel需要引入一个外部的jar包(jxl.jar),这个jar包主要是用来构建Excel的骨架的,具体实例如下:
- 大家用了这么久的.net有没有发现C#中可以用中文变量呀!!可用这个特性来彻底改变程序的易读性(搞笑).但其实有一个非常独特的用处的
- Eclipse里选一个变量后,这个类里的该变量不变色了
- Eclipse里选一个变量后,这个类里的该变量不变色了
- C语言里,写好了一个文件保存到了硬盘中,下次打开这个文件时,怎样才能返回这个文件的首地址以便下一步的操作?
- Observer 在对象之间定义一个一对多的依赖关系,从而当一个对象状态发生改变时,所有依赖于这个对象的对象都能够得到通知,并对上述改变做出反应.
- 一个char类型的字符赋给一个string对象时不会发生装箱操作
- 如何在freescale banked区域操作一个变量(RAM, EEPROM, FLASH)
- 享变量内有一个函数指针,是外部传进来的。 可我一使用这个函数指针,就出错了