volatile 关键字 使一个变量在多个线程中可见 (只能保证可见性 不能保证原子性)
使用volatile关键字,会让所有的线程都会读到变量的修改值。
在一个线程里面调用了成员变量的话,并修改的这个成员变量。当Cup非空闲的时候别的线程就不会知道有个线程修改了这个成员变量,如果加了volatile 关键字 当被修饰的这个变量发生改变的时候就会通知所有的线程刷新他们的缓存区对这个成员变量进行更新。
public class Test_ implements Runnable{
volatile boolean flag = true;
@Override
public void run() {
while(flag){
}
System.out.println("线程结束----");
}
public static void main(String[] args) {
Test_ t = new Test_();
new Thread(t).start();
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
t.flag =false;
}
}
网友评论