直接上代码
public class Test {
private static volatile boolean flag = true;
public static void main(String[] args) {
new Thread(() -> {
while (flag) {
}
System.out.println("==========");
}).start();
Thread.sleep(1000);
flag = false;
}
}
如果不加volatile,则以下代码永远得不到执行,因为主线程对flag的修改,子线程是看不到的
System.out.println("==========");