Ris*_*ise 5 java multithreading
我正在尝试isAlive()java线程方法的一个例子.但是我发现即使线程已经启动,该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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 4
如果我没记错的话,java在线程切换之间有相当长的周期,因此 isAlive 可能会失败,因为线程尚未处于活动状态。尝试在 thread.start() 和 thread.isAlive() 之间添加一些等待时间