gpt4 book ai didi

java - 强制停止线程

转载 作者:行者123 更新时间:2023-11-30 03:45:03 33 4
gpt4 key购买 nike

假设我有以下一段由线程运行的代码:

public void logic()
{
//Step1
//Step2
//Step3
//Step4
...
...
//Stepn
}

此方法中没有任何地方调用可中断方法(例如 wait、sleep、join)。并且某些步骤需要花费大量时间来执行。原因可能不是阻塞操作(例如(socket.read 或文件的读取方法))。我想确保如果整个逻辑方法在 M 秒内没有执行,那么线程应该被杀死。实现这一目标的最佳方法是什么?

最佳答案

你说“在这个方法中没有调用可中断方法(如wait、sleep、join)”,但中断并不限于阻塞方法;如果你检查的话,任何方法都可以响应中断。

logic 方法的每个步骤之间添加类似的内容:

if (Thread.currentThread().interrupted()) {
throw new InterruptedException();
}

(您可能希望将其实际放入某个静态 allowInterruption 方法中,然后在每个步骤后调用该方法。)

关于java - 强制停止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25964203/

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