volatile的使用含义
来源:互联网 发布:免费下载淘宝网2017 编辑:程序博客网 时间:2024/05/16 09:22
volatile的作用是强制从公共堆栈(存储实例对象值的区域)中取得变量的值,而不是从线程的私有数据栈中取得变量的值,当一个变量被volatile修饰的时候,每次读取这个值都需要删除自身私有数据域的值,然后强迫从公共内存区域取得这个变量的最新值。
例子1:volatile不保证变量操作的原子性
package javaPratice;
class VThread extends Thread{
volatile public static int count=0;
private static void addCount(){
for(int i=0;i<100;i++){
count++;
}
System.out.println("count="+count);
}
public void run(){
addCount();
}
}
public class VolatileAtomic {
public static void main(String args[]){
VThread[] objectVThread = new VThread[100];
for(int i=0;i<100;i++){
objectVThread[i]= new VThread();
}
for(int i=0;i<100;i++){
objectVThread[i].start();;
}
}
}
改进保证变量的操作的原子性:
class VThread extends Thread{
volatile public static int count=0;
synchronized private static void addCount(){
for(int i=0;i<100;i++){
count++;
}
System.out.println("count="+count);
}
public void run(){
addCount();
}
}
0 0
- volatile的使用含义
- 关键字volatile的含义及使用
- volatile的含义
- volatile的含义
- volatile 的含义
- volatile 的含义
- volatile的含义
- 关键字volatile的含义
- volatile关键字的含义
- synchronize和volatile含义,使用
- java中volatile关键字的含义 原子类型变量使用
- volatile 与 explicit 的含义
- static和volatile的含义
- volatile含义
- volatile关键字的含义(转载)
- 关键字volatile的含义及常见用法
- C语言中关键字volatile的含义
- java中volatile关键字的含义
- 写出smarty模板的特点
- 我的大学毕业设计
- android自定义控件学习【1】----自定义卡券View
- matlab 神经网络做回归预测
- java project 项目在 linux 下面部署步骤
- volatile的使用含义
- STM8问题总结
- 最大网络流 EK 算法
- SQLite的初级研究
- 使用Canvas和Paint制作圆角矩形头像
- Python set
- 一张图弄清楚Java线程机制
- 选择香港虚拟主机空间的优势
- 在C++中使用Protocol Buffer