gpt4 book ai didi

java - 线程启动时出现 IllegalThreadStateException

转载 作者:行者123 更新时间:2023-11-30 09:10:42 25 4
gpt4 key购买 nike

我的一些用户一直在报告 IllegalThreadStateExceptions,这导致返回以下代码。我无法重新创建它,大多数人都能够毫无问题地执行这部分代码。

代码会定期重新执行,所以旧线程应该被新线程替换并启动,但这是错误发生的地方。

if (head.threadSeal != null)
{
head.threadSeal.interrupt();
}

head.threadSeal = new ThreadFindSeal();
head.threadSeal.start(); // IllegalThreadStateException here

相关堆栈跟踪:

java.lang.IllegalThreadStateException
at java.lang.Thread.start(Thread.java:704)

我是否遗漏了文档中的某些内容,为什么在新线程上启动会失败?

最佳答案

Thread#start() 状态的 javadoc

Throws: IllegalThreadStateException - if the thread was already started.

您没有提供太多信息,但可能会发生以下情况。

第一个线程执行

head.threadSeal = new ThreadFindSeal();

然后第二个线程执行

head.threadSeal = new ThreadFindSeal();
head.threadSeal.start();

替换 Thread 并启动它。

然后第一个线程执行

head.threadSeal.start();

它在与之前相同的 Thread 对象上调用,该对象已经启动。

关于java - 线程启动时出现 IllegalThreadStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22441310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com