我想知道如何重新启动此线程 我通过使用join方法杀死线程,但我得到了这个异常: 线程" main"中的例外情况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();
}
}
}
答案 0 :(得分:5)
您无法在Java中重新启动线程。一旦完成,就完成了。
相反,您应该使用相同的Thread
创建 new Runnable
,然后启动新主题。编辑:虽然你可能可能使用“旧”Thread
对象作为Runnable
来运行新线程,但如果可能,我会避免这样做。我尽量让Runnable
和Thread
分开;我认为这是一个设计错误,您甚至可以通过扩展它来创建Thread
,Thread
实现Runnable
。
请注意,加入线程不会杀死它 - 它只是等待它完成。他们的行动非常不同。当一个线程(X)加入另一个线程(Y)时,Y内没有任何指示等待它终止的东西 - 甚至没有提示它应该尝试停止。
答案 1 :(得分:2)
Java线程只能执行一次。
如果您想再次运行它,请在同一Thread
周围创建一个新的Runnable
。