如何在 Java 中检查线程是否已停止
问题描述
如何检查线程是否已停止?
解决方案
以下示例演示如何通过使用 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;
}
}
}
}
结果
上述代码示例将产生以下结果。
Thread has not finished Finished
java_threading.html