voliatle关键字
1.volatile关键字使用: 多线程中存在私有堆栈中的值和公共堆栈中的值不同步的问题。什么意思呢?可能线程在一个地方修改了内存中变量的值,而其它地方线程却从私有堆栈中去读取不一致的变量值。关键字volatile 的主要作用是使在多个线程上可见。也就是,强制从公共堆栈中取得变量的值,而不是从线程私有数据栈中取得变量的值。 线程的私有堆栈: 读取公共内存: 强制从私有堆栈中取值的方法为JVM被设置为-server(不设置-server也是从私有堆栈中获取值)。 package chapter2; public class VolatileTest { static class RunThread extends Thread{ private boolean isRunning = true; public boolean isRunning() { return isRunning; } public void setRunning(boolean isRunning) { this.isRunning = isRunning; } @Override public void run() { super.run(); System.out.println("进入run 了"); while (isRunning) { } System.out.println("线程被停止了!