volatile变量具有synchronized的可见性特性,但是不具备原子特性,即多线程环境中,使用 volatile 关键字的变量仅可以保证不同线程读取变量时,可以读到最新修改的变量值,但是修改变量值时,却不能保证线程安全(可能存在写值覆盖现象)。以下测试代码,展示了使用volatile关键.....
分类:
编程语言 时间:
2014-11-20 11:37:55
阅读次数:
216
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1). 并行设备的硬件寄存器(如:状态寄存器)2)...
分类:
其他好文 时间:
2014-11-19 23:58:26
阅读次数:
279
主要介绍单例模式的一种写法、注意事项、作用、测试,以Java语言为例,下面代码是目前见过最好的写法:?123456789101112131415161718192021public class Singleton {private static volatile Singleton instance...
分类:
编程语言 时间:
2014-11-19 18:31:39
阅读次数:
186
一。volatile定义:一个定义为volatile的变量是说这变量可能会被意想不到的被改变,这样,有了volatile变量后,就提醒编译器就不会去假设这个变量的值了。精确地说就是,编译中的优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。eg:1.硬件设备...
分类:
其他好文 时间:
2014-11-19 10:31:07
阅读次数:
199
嵌入式软件笔试 Chapter1 语法类 1 .volatile作用?应用场合举3例 volatile修饰的变量表示这个变量可能会被意想不到的改变,对该变量的操作将不作优化,用到该变量时都从这个变量的原始地址读取,而不是用保存在寄存器里的备份。 Volatile常用在: 1)....
分类:
其他好文 时间:
2014-11-19 07:25:40
阅读次数:
257
volatile表示编译器不要优化代码 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1) 并行...
分类:
其他好文 时间:
2014-11-18 06:57:41
阅读次数:
126
Problem description
A secret service developed a new kind of explosive that attain its volatile property only when a speci c
association of products occurs. Each product is a mix of two differen...
分类:
其他好文 时间:
2014-11-17 22:58:10
阅读次数:
383
之前在InfoQ看到一篇关于java重排序的一篇文章,觉得里面有些知识写得太绝对了,于是想通过实际程序来说明一下:关于java重排序,这里就不做介绍了,我们知道JVM底层封装了与OS的交互,它内部有自己的一套类似于OS的内存模型,程序重排序的设计思路基本上是来源于OS。下面直接..
分类:
编程语言 时间:
2014-11-16 18:54:34
阅读次数:
142
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatil...
分类:
其他好文 时间:
2014-11-13 22:29:12
阅读次数:
176
C++编译错误cannot have cv-qualifier在C++中CV指const和volatile两个keyword。有两种情况不能使用CV限定。一、非成员函数不能含有CV限定,即const和volatile限定#include using namespace std;double getA...
分类:
编程语言 时间:
2014-11-06 19:05:49
阅读次数:
244