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