package com.zhiru;
/*
* volatile关键字
* 用于声明简单类型变量,
* 那么对它们的操作就是原子级别的
* 但是当volatile修饰的变量的值与该变量以前的值相关
* 此时volaitle关键字不起作用
*/
public class VolatileDemo extends Thread {
private volatile static int n = 0;
private static void inc() {
n++;//变量的值与以前的值相关,则操作就不一定是原子级别的了
}
public void run() {
inc();
}
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
Thread[] t = new Thread[100];
for (int i = 0; i < t.length; i++)
t[i] = new VolatileDemo();
for (int j = 0; j < t.length; j++)
t[j].start();
for (int j = 0; j < t.length; j++)
t[j].join();
System.out.println(n);
}
}
java volatile关键字
最新推荐文章于 2022-06-19 18:46:04 发布