Volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

一个volatile对象引用可能是null。

(1)Java程序代码

package niukewang;

public class volatile_Test {

    public static void main(String args[]) {
MyRunnable r = new MyRunnable();
Thread t1 = new Thread(r);
t1.start(); try {
Thread.sleep(2);
r.stopThread();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} class MyRunnable implements Runnable {
private volatile boolean active; public void run() {
active = true;
while (active) // 第一行
{
// 代码
System.out.println("Print the line");
}
} public void stopThread() {
System.out.println("Set to false");
active = false; // 第二行
}
}

只有当调用stopThread时候,设置了ative为false的时候,然后线程获取了false的值,会停止第一行中内容的输出。

(2)输出结果。

Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Print the line
Set to false
Print the line

volatile修饰符的更多相关文章

  1. Java 的 volatile 修饰符

    volatile 修饰符,用于多线程同步 volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值.而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存.这 ...

  2. Java中volatile修饰符,不稳定标记的用法笔记

    今天学java特性时,发现了volatile修饰符,这个修饰符修饰的变量告诉java编译器忽略优化机制,这样的优势是: java优化后,寄存器会缓存内存里的变量,另一个线程修改这个变量的内存时,不会同 ...

  3. java中Volatile修饰符的含义

    在java语言中:为了获得最佳速度,同意线程保存共享成员变量的私有拷贝.并且仅仅当线程进入或者离开同步代码块时才与共享成员变量的原始值进行对照. volatilekeyword的作用就是提示vm:对于 ...

  4. 关于STM32库中 __IO 修饰符(volatile修饰符,反复无常的意思)

    STM32例子代码中会有像这样的代码 static __IO uint32_t TimingDelay;  这里边的__IO修饰符不好理解,单从字面可以看出是为IO相关,查其标准库可以得知这个__IO ...

  5. STM32库中 __IO 修饰符(volatile修饰符)

    STM32例子代码中会有像这样的代码 static __IO uint32_t TimingDelay; 这里边的__IO修饰符不好理解,单从字面可以看出是为IO相关,查其标准库可以得知这个__IO原 ...

  6. volatile 修饰符的有过什么实践?

    一种实践是用 volatile 修饰 long 和 double 变量,使其能按原子类型来读写. double 和 long 都是 64 位宽,因此对这两种类型的读是分为两部分的,第一次 读取第一个  ...

  7. 三个线程,ABC 10次(volatile+synchronized(2 synchronized可以保证内存可见性,所以去掉status 的volatile修饰符)

    package ThreadABC; public class MyThread extends Thread { public static int status = 0; @Override pu ...

  8. 转: 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)

    转载请注明出处:     volatile用处说明     在JDK1.2之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的.而随着JVM的成熟和优化,现在在多线程 ...

  9. 【Java并发编程】:volatile变量修饰符

    volatile用处说明     在JDK1.2之前,java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的.而随着JVM的成熟和优化,现在在多线程环境下volatile关键 ...

随机推荐

  1. Android Studio项目提交到GitHub

    1. 现在并安装Git for Windows: 2. 点击File->Settings->Version Control->Git,配置git.exe的路径,并点击Test按钮测试 ...

  2. 决策树ID3算法的java实现(基本试用所有的ID3)

    已知:流感训练数据集,预定义两个类别: 求:用ID3算法建立流感的属性描述决策树 流感训练数据集 No. 头痛 肌肉痛 体温 患流感 1 是(1) 是(1) 正常(0) 否(0) 2 是(1) 是(1 ...

  3. STL的std::find和std::find_if

    std::find是用来查找容器元素算法,但是它只能查找容器元素为基本数据类型,如果想要查找类类型,应该使用find_if. 小例子: #include "stdafx.h" #i ...

  4. HTML5 数据集属性dataset

    有时候在HTML元素上绑定一些额外信息,特别是JS选取操作这些元素时特别有帮助.通常我们会使用getAttribute()和setAttribute()来读和写非标题属性的值.但为此付出的代价是文档将 ...

  5. Eclipse搭建Maven Prooject(终于)

    今天我们一起来探讨eclipse搭建maven项目的步骤 一.建一个maven项目, 1.找到File ,点击 2.弹出窗口,再点击new 3.弹出窗口,点击other 4.输入maven,找到mav ...

  6. kindle型号

    这篇文章为 Kindle 新手解决三个问题:怎么辨别Kindle 型号?通过 Kindle 外观判断准确吗?Kindle序列号在那里? 贴吧吧友提问的原话"在咸鱼看到一台,那哥们说也不知道K ...

  7. MVC学习系列4--@helper辅助方法和用户自定义HTML方法

    在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类, ...

  8. NFS网络共享服务部署

    10.3 NFS服务端部署环境准备 10.3.1 NFS服务部署服务器准备 服务器系统 角色 IP Centos6.7 x86_64 NFS服务器端(NFS-server) 192.168.1.14 ...

  9. PHP核心技术与最佳实践——全局浏览

    难得买到并喜欢一本好书,‘PHP核心技术与最佳实践’. 几天时间,先看了个大概,总结一下整体是什么样子的,怎么看怎么学. 1.总共14章: 2.第1.2章讲PHP的OOP: 其中第一章侧重于PHP的O ...

  10. 学习《Hardware-Efficient Bilateral Filtering for Stereo Matching》一文笔记。

    个人收藏了很多香港大学.香港科技大学以及香港中文大学里专门搞图像研究一些博士的个人网站,一般会不定期的浏览他们的作品,最近在看杨庆雄的网点时,发现他又写了一篇双边滤波的文章,并且配有源代码,于是下载下 ...