我有以下几点 Processor
班级:
public class Processor extends Thread {
private volatile boolean running = true;
@Override
public void run() {
while (running) {
for (int i = 0; i < 1000; i++) {
System.out.println("Hello " + i);
Thread.sleep(100);
}
}
}
public void shutdown() {
running = false;
}
}
以下是我的 main
方法:
Processor processor = new Processor();
processor.start();
Scanner scanner = new Scanner(System.in);
scanner.nextLine();
processor.shutdown();
在我的 Processor
班级我有 volatile boolean
变量 running
,我已设置为 true
. 我身体里的一个环 run
方法正在运行,只要 running
是 true
. 我有一个单独的方法 shutdown
,执行时设置 running
至 false
从而停止了内部的循环 run
方法。
从我的 main
方法我在一个单独的线程中运行循环,然后执行 shutdown
方法。
尽管设置了变量 running
作为 volatile
,无法停止循环执行。
我哪里出错了?
我在用intellij ide。
1条答案
按热度按时间cs7cruho1#
你需要交换while和for循环。这样你就可以短路了
我已经让你修了凹痕:)