gpt4 book ai didi

java - 即使 isAlive() 返回 false 也会抛出异常 IllegalThreadStateException

转载 作者:行者123 更新时间:2023-12-02 10:27:02 24 4
gpt4 key购买 nike

我正在用线程编写一些代码,但遇到以下问题。这是发生异常的代码:

if (veh != null && wantedRegistrations.contains(veh.getRegistration())) {
veh.setLeavingTrue();
if(!veh.isAlive()) {
veh.start();
}
}

所以我对此进行了调试,如果进入了 block ,则 isAlive() 返回 false,然后在 Thread.java 中抛出 IllegalThreadStateException :

if (threadStatus != 0)
throw new IllegalThreadStateException();

上面的评论中写道:

A zero status value corresponds to state "NEW".

抛出异常时threadStatus始终为2,表示处于BLOCKED状态。好吧,这很令人困惑,因为我认为如果线程是 NEW 或 TERMINATED, isAlive() 返回 false。我无法发布完整的代码,因为代码很多,但我对 isAlive() 方法的这种行为感兴趣。

最佳答案

如果您启动一个线程并过早使用 isAlive(),您可能会得到 false,因为该线程仍在启动。另一方面,如果您在已启​​动的线程上调用 start(),它将抛出 IlegalThreadStateException

关于java - 即使 isAlive() 返回 false 也会抛出异常 IllegalThreadStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53874181/

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