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