gpt4 book ai didi

java - 销毁一个线程,在其 run() 方法中拥有一个永无止境的函数?

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

在 Thread 类的 run() 方法中,我正在调用一个永无止境的函数。我需要线程仅运行特定的持续时间。

线程一旦启动就无法控制,他们有办法销毁它吗?

我尝试过yield()sleep()等...

PS - 我无法更改永无止境的功能

最佳答案

来自 Oracle Java 文档:

public void run(){
for (int i = 0; i < inputs.length; i++) {
heavyCrunch(inputs[i]);
if (Thread.interrupted()) {
// We've been interrupted: no more crunching.
return;
}
}
}

您的线程应该在每个循环后检查中断条件以查看它是否被中断。如果您调用的方法只执行 while(true){} 操作,那么恐怕无法中断它,并且绝不能在线程上调用 stop()

程序员有责任使长时间运行的方法响应中断。

关于java - 销毁一个线程,在其 run() 方法中拥有一个永无止境的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15917887/

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