这是停止线程的一个很好的例子。
How to stop a java thread gracefully?
但是当我尝试检查这个示例时,我收到了无限循环。
这是我的代码:
public class Num {
public void crash(ManualStopping t1) {
t1.stopMe();
}
public static void main(String[] args) {
Num num = new Num();
ManualStopping t1 = new ManualStopping();
t1.run();
System.out.println("Main thread");
num.crash(t1);
}
}
class ManualStopping extends Thread {
volatile boolean finished = false;
public void stopMe() {
finished = true;
}
public void run() {
while (!finished) {
System.out.println("I'm alive");
}
}
}
最佳答案
我认为您需要启动
您的线程 - 而不是运行
它。通过调用 run,您只是进行正常的方法调用,而不是运行单独的线程。
关于java - 我正在寻找优雅地停止 java 线程并发现了这一点,但我不知道如何检查这种情况的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7710521/