isAlive()返回true表示线程已启动且未终止,false表示未启动或已结束;需调用start()才视为启动,常用于监控线程状态。
Thread.isAlive() 是 Java 中用于检测线程是否处于“活动状态”的方法。它可以帮助我们判断一个线程是否已经启动并且尚未终止。
public final boolean isAlive()
返回值为 boolean 类型:示例代码:
class Worker extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("子线程执行中: " + i);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class ThreadAliveDemo {
public static void main(String[] args) {
Worker worker = new Worker();
System.out.println("线程启动前: " + worker.isAlive()); // false
worker.start();
System.out.println("线程启动后立即检查: " + worker.isAlive()); // true
while (worker.isAlive()) {
System.out.println("主线程等待子线程结束...");
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("线程结束后: " + worker.isAlive()); // false
}
}
输出大致如下:
次调用 start() 会抛出 IllegalThreadStateException,isAlive() 仍返回 false