Java - 线程状态异常

Man*_*oba 3 java multithreading

当我尝试重新开始我的线程时,我收到以下错误.

Exception in thread "Thread-1" java.lang.IllegalThreadStateException
     at java.lang.Thread.start(Unknown Source)
     at com.jrat.server.Server.run(Server.java:159)
Run Code Online (Sandbox Code Playgroud)

这是一行:

if (!t.isAlive()) t.start();
Run Code Online (Sandbox Code Playgroud)

代码可以在循环(套接字处理程序)中执行多次.据我所知,这个错误意味着它无法启动新的Thread,因为它已经在运行.奇怪的是我之前有一个isAlive.

知道为什么会这样吗?

谢谢.

Jon*_*eet 8

据我所知,这个错误意味着它无法启动新的Thread,因为它已经在运行.

不,这意味着您无法启动已经启动的线程.

您无法重新启动线程,这是您正在尝试执行的操作.从以下文档start():

抛出:IllegalThreadStateException - 如果线程已经启动.

你可能应该使用一个,ExecutorService而不是猜测 - 但是你要做的事情并不是很清楚.