gpt4 book ai didi

java - 停止线程并再次开始在黑莓中给出 IllegalThreadStateException

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:23 27 4
gpt4 key购买 nike

我在使用以下代码时遇到 IllegalThreadStateException 异常:我已经启动了这个线程一次(通过使用 thread.start())并再次尝试在另一个地方启动它,所以使用了以下代码:

thread.interrupt();
thread.start();

但是 thread.start() 抛出 IllegalThreadStateException

我应该用什么来解决?

最佳答案

Thread 对象只能启动一次。如果您需要停止/中断一个Thread,然后又想重新启动它,您应该创建一个新实例,并在其上调用start():

thread.interrupt();  // if you need to make sure thread's run() method stops ASAP
thread = new MyThreadSubclass();
thread.start();

From the API docs

IllegalThreadStateException - if the thread was already started.

我知道不能 100% 清楚您不能再次调用 start(),即使您之前调用过 interrupt(),但这就是它的工作方式.

如果您查看 API docs for standard Java ,这个问题就比较清楚了。

关于java - 停止线程并再次开始在黑莓中给出 IllegalThreadStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13538668/

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