我正在尝试Java线程的isAlive()
方法的示例。但是我发现即使线程已经启动,isAlive()
方法也将返回false
。有人可以告诉我我在做什么错吗?这是代码片段。
package app;
public class ThreadAliveDemo {
public static void main(String[] args) {
Thread myThread;
myThread = new Thread()
{
public void run()
{
Thread.sleep(3000);
System.out.println("My Thread.");
}
};
myThread.setName("My Thread");
myThread.start();
if(!myThread.isAlive())
{
myThread.setName("My Thread");
myThread.start();
}
}
}
最佳答案
如果我的内存很好,那么java在线程切换之间会有很长的时间间隔,因此isAlive可能会失败,因为线程尚未激活。尝试在thread.start()和thread.isAlive()之间添加一些等待时间