volatile
来源:互联网 发布:mysql 建表 索引 编辑:程序博客网 时间:2024/06/04 22:44
这是一个类型修饰符,位置同const、static等。一个使用volatile修饰的变量,比如volatile int i; 每次对该变量的直接引用,都会访问内存,而不是从寄存器中读取(如果其已经在寄存器中)。这样一来,volatile似乎没什么用处,反倒会使数据的读取相对变慢很多。但是,如果没有volatile,编译器可能会优化你的程序,使得数据从寄存器中读取,从而加快程序的运行,但如果这个变量是同其它进程/线程共享的,就可能造成数据的不一致。多线程情况下,你可以使用互斥机制来保证对共享数据访问的原子性。但是,在单片机等嵌入式环境中,硬件经常不会有这种互斥机制的支持,这时某些共享的数据(比如端口)就可能会产生不一致的情况。而使用volatile就会使编译器不对代码进行优化,每次对该变量的访问都会从内存中读取。
0 0
- volatile
- volatile
- Volatile
- volatile
- volatile
- volatile
- volatile
- volatile
- volatile
- Volatile
- volatile
- volatile
- volatile
- volatile
- volatile
- volatile
- volatile
- volatile
- 总结:p2p项目
- java正则表达式中的‘\\转义
- hbase异常regionserver宕机
- TIM输出比较的三种模式
- Protobuffor Java使用说明(包含nano、micro版本)附件protobuf-java-2.3.0.jar
- volatile
- HTML5添加 video 视频标签后仍然无法播放的解决方法
- 浅析Java中的final关键字
- 【LeetCode题目记录-4】插入数组间隔问题
- 读《周鸿祎自述:我的互联网方法论》有感
- html 欣赏
- 【Unix/Linux】【命令】【文件,目录操作工具】复制文件或目录——cp命令
- C++之复合类型
- intent的调用