我正在尝试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()之间添加一些等待时间

10-08 19:00