我尝试了一些示例代码:
Thread thread = new TestThread();
thread.start();
thread.isAlive();
在我看来,isAlive() 调用返回 false 的唯一方法是线程已经完成。这是真的?
Java 7 JavaDoc 开始:
使该线程开始执行;Java 虚拟机调用该线程的 run 方法。结果是两个线程同时运行:当前线程(从对 start 方法的调用返回)和另一个线程(执行其 run 方法)。
多次启动一个线程是不合法的。特别是,线程一旦完成执行就可能不会重新启动。
isAlive 的 Java 7 JavaDoc:
测试此线程是否存在。如果线程已启动且尚未死亡,则该线程处于活动状态。
这些对我来说似乎都不是很有结论性的。