我正在阅读关于 Java 中的 反复无常关键字,并且完全理解它的理论部分。
但是,我要寻找的是,一个很好的例子,它显示了如果变量不是 反复无常会发生什么,如果它是。
下面的代码片段不能按预期工作(取自 给你) :
class Test extends Thread {
boolean keepRunning = true;
public void run() {
while (keepRunning) {
}
System.out.println("Thread terminated.");
}
public static void main(String[] args) throws InterruptedException {
Test t = new Test();
t.start();
Thread.sleep(1000);
t.keepRunning = false;
System.out.println("keepRunning set to false.");
}
}
理想情况下,如果 keepRunning
不是 反复无常,线程应该无限期地继续运行。
我有两个基本问题: