我想知道如何重新启动此线程
我通过使用join方法杀死了线程,但是我得到了这个异常:
线程“主”中的异常java.lang.IllegalThreadStateException
线程管理器:

public void manage() {

    while(true)
    {
        thread1.start();
        try {
            thread1.join();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        thread2.start();
        try {
            thread2.join();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

最佳答案

您无法在Java中重新启动线程。一旦完成,就完成了。

相反,您应该使用相同的Thread创建一个新的Runnable,然后启动新线程。编辑:尽管您可能会使用“旧的” Thread对象作为新线程运行的Runnable,但如果可能的话,我会避免这样做。我尝试将RunnableThread保持非常分开;我认为这是一个设计错误,您甚至可以通过扩展它来创建Thread,并且Thread实现Runnable

请注意,加入线程并不会杀死它-它只是在等待它完成。它们是非常不同的操作。当一个线程(X)加入另一个线程(Y)时,Y内没有任何迹象表明正在等待终止-甚至没有暗示它应该尝试停止。

10-07 16:13
查看更多