gpt4 book ai didi

java - 为什么 Thread.currentThread.interrupt() 与 return 结合可以停止当前正在运行的线程

转载 作者:行者123 更新时间:2023-12-01 16:55:36 25 4
gpt4 key购买 nike

好吧,当我想终止当前线程时,我试图理解为什么 Thread.currentThread.interrupt() 和 return 的以下组合工作正常。

Thread.currentThread.interrupt();
return;

我写了一个小程序:

public class Interr implements Runnable {
@Override
public void run() {
for(int i= 0; i<10000;i++){
System.out.println(i);
if(i==500){
Thread.currentThread().interrupt();
return ;
}
}

}
public static void main(String args []){
Thread thread = new Thread(new Interr());
thread.run();
}
}

我知道我也可以使用 Thread.currentThread.stop() 但这是终止线程的不安全方法。所以我尝试使用interupt()和return的组合。

它有效,但我不明白为什么它有效。

有什么解释吗?

编辑:在上面的示例中,我是线程的所有者。假设,我不是线程的所有者。为什么这个组合有效?

最佳答案

您不需要interrupt()return 足以退出 run(),这将导致线程停止,因为它没有更多工作要做。

关于java - 为什么 Thread.currentThread.interrupt() 与 return 结合可以停止当前正在运行的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33299554/

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