import java.util.concurrent.atomic.AtomicInteger;
public class VolatilePattern1 extends Thread{
volatile boolean shutdownRequested;
private AtomicInteger count = new AtomicInteger();
public void shutdown() {
shutdownRequested = true;
}
public void run() {
System.out.println("Thread:" + Thread.currentThread().getName()+" started.");
while (!shutdownRequested) {
System.out.println("working ..."+count);
count.getAndIncrement();
try {
Thread.sleep(50);
} catch(InterruptedException ie) {
ie.printStackTrace();
}
}
}
public static void main(String[] args) {
System.out.println("Thread:" + Thread.currentThread().getName()+" started.");
VolatilePattern1 vp = new VolatilePattern1();
vp.start();
try {
Thread.sleep(2000);
} catch(InterruptedException ie) {
ie.printStackTrace();
} finally {
vp.shutdown();
}
}
}
分享到:
相关推荐
一般说来,volatile用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加volatile; 2、多任务环境下各任务间共享的标志应该加volatile; 3、存储器映射的硬件寄存器通常也要加volatile说明,...
详细说明 并举例说明了VOlatile的作用及用法,特别是嵌入式程序员要注意的
一般对于volatile的解释是这样的:将变量定义为volatile可以防止编译器对变量进行优化,每次均从内存中访问变量,而不是寄存器。既然让编译器优化可以提高访问速度,那为什么又要不用它以及什么时候不用它?其实主要...
前言Java中volatile这个热门的关键字,在面试中经常会被提及,在各种技术交流群中也经常被讨论,但似乎讨论不出一个完美的结果,带着种种疑惑,准备从JVM、
java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java volatile 关键字实战java ...
C中的volatile用法 ,以前编程的时候不是很注意这个关键字,后来在AVR使用的时候被搞得一塌糊涂。最后发现是编译器优化造成的
本文给大家介绍了单片机C语言中volatile的作用。
C语言中关键字volatile的作用,使用说明和例子
容易忽略的变量声明,但是很重要 volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.
const和volatile分析 这个分析得很好 面试 找工作 必备的
volatile的用法讲解,讲得很详细,希望能帮助到大家
对volatile的原子性做探究,加上自己的实验代码和实验结果! Case多核?单核?是否有volatile是否编译器优化-O2结果!
主要讲述java线程volatile关键字
volatile的用法,在写代码正确使用volatile,正确理解volatile的用法,增强代码的健壮性
c语言下关键字的volatile用法,包含一些基本例子
一个定义为volatile的变量是说这变量可能会被 意想不到地改变,这样,编译器就不会去假设这 个变量的值了。精确地说就是,优化器在用到这 个变量时必须每次都小心地重新读取这个变量的 值,而不是使用保存在寄存器里...
当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来...
C程序中volatile关键字的使用.方法及其例程介绍。
volatile与synchronized的区别,锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)
讲述了volatile_unsigned_int地址映射的使用说明。