原始代码
public class VolatileDemo extends Thread {
public boolean flag
= true;
public void setFlag(boolean flag
) {
this.flag
= flag
;
}
@Override
public void run() {
System
.out
.println("===start===");
try {
Thread
.sleep(3000);
} catch (InterruptedException e
) {
e
.printStackTrace();
}
setFlag(false);
}
public static void main(String
[] args
) {
VolatileDemo volatileThread
= new VolatileDemo();
volatileThread
.start();
System
.out
.println("flag值:"+volatileThread
.flag
);
System
.out
.println("===end===");
while (volatileThread
.flag
) {
}
}
}
循环无法退出
添加volatile关键字
public volatile boolean flag
= true;
转载请注明原文地址:https://blackberry.8miu.com/read-10229.html