Java - 线程状态异常

标签 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)

这是一行:

if (!t.isAlive()) t.start();

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

知道为什么会这样吗?

谢谢。

最佳答案

As far as I know, this error means that it can't start a new Thread because it is already running.

不,这意味着您不能启动已经启动的线程。

您不能重新启动 一个线程,而这正是您想要做的。来自 the documentation for start() :

Throws: IllegalThreadStateException - if the thread was already started.

您可能应该使用 ExecutorService 来代替,猜测 - 但您并不清楚您要做什么。

关于Java - 线程状态异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10207369/

相关文章:

java - 谷歌播放完整性 API : a Nightmare

java - Android WebView 无法在 WebRTC 对等连接上显示两个视频标签

Python线程越来越多地生成任务并消耗过多的内存和cpu

Java 8+ ConcurrentHashMap 锁 strip 化

java - env->FindClass 函数返回 null

java - JBoss 对比Tomcat JDBC 驱动程序注册差异

java - Derby ,Java EE。对文件数据库运行集成测试,不会被丢弃

python - 快速网络爬虫

java - 在 ThreadPoolExecutor 的所有 Tasks 完成后运行代码

multithreading - 多线程Scala中长进程的惯用超时