如何检查线程是否已经停止?(How to check a thread has stop or not?)
优质
小牛编辑
129浏览
2023-12-01
问题描述 (Problem Description)
如何检查线程是否已经停止?
解决方案 (Solution)
下面的示例演示了如何通过使用isAlive()方法检查线程是否已停止。
public class Main {
public static void main(String[] argv)throws Exception {
Thread thread = new MyThread();
thread.start();
if (thread.isAlive()) {
System.out.println("Thread has not finished");
} else {
System.out.println("Finished");
}
long delayMillis = 5000;
thread.join(delayMillis);
if (thread.isAlive()) {
System.out.println("thread has not finished");
} else {
System.out.println("Finished");
}
thread.join();
}
}
class MyThread extends Thread {
boolean stop = false;
public void run() {
while (true) {
if (stop) {
return;
}
}
}
}
结果 (Result)
上面的代码示例将产生以下结果。
Thread has not finished
Finished