我想知道如何重新启动此线程
我通过使用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
,但如果可能的话,我会避免这样做。我尝试将Runnable
和Thread
保持非常分开;我认为这是一个设计错误,您甚至可以通过扩展它来创建Thread
,并且Thread
实现Runnable
。
请注意,加入线程并不会杀死它-它只是在等待它完成。它们是非常不同的操作。当一个线程(X)加入另一个线程(Y)时,Y内没有任何迹象表明正在等待终止-甚至没有暗示它应该尝试停止。