回答
在 Java 中我们可以通过 Thread
类的 isAlive()
来判断线程是否存活。
扩展
isAlive()
返回一个 Boolean,true
表示线程还在执行,false
表示线程已经终止。
@Test
public void isAliveTest() {
Thread thread = new Thread(() -> {
for (int i = 0; i < 5; i++) {
log.warn("{} - 正在执行-[{}]...",Thread.currentThread().getName(),i);
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
});
thread.start();
while (thread.isAlive()) {
log.info("{}-线程是存活的,isAlive:{}...",thread.getName(),thread.isAlive());
try {
Thread.sleep(400L);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
log.error("{}-线程已终止,isAlive:{}...",thread.getName(),thread.isAlive());
}
运行结果:
isAlive()
是一个本地 native
方法:
public final native boolean isAlive();