【发布时间】:2011-03-30 04:51:30
【问题描述】:
我正在使用第三方库来处理大量数据集。该过程偶尔会进入无限循环(或被阻止 - 不知道为什么并且无法进入代码)。我想在设定的时间后杀死它并继续下一个案例。一个简单的例子是:
for (Object data : dataList) {
Object result = TheirLibrary.processData(data);
store(result);
}
processData 通常最多需要 1 秒。我想设置一个计时器,它会在 10 秒后杀死 processData()
编辑 我会很感激一个代码 sn-p (我没有使用线程练习)。 Executor 方法看起来很有用,但我不太清楚如何开始。此外,更传统方法的伪代码对我来说太笼统了。
@Steven Schlansker - 建议除非第三方应用程序预期中断,否则它将无法工作。再次详细说明和示例将不胜感激
编辑 我从同事 Sam Adams 那里得到了我想要的精确解决方案,我将其附加为答案。它比其他答案更详细,但我会给他们两个投票。我会将 Sam 标记为已批准的答案
【问题讨论】:
-
肯定是死循环了,还是被阻塞了?分析封闭的库可能会有所帮助(除非它被混淆了)。
-
@Jim Downing 是的,它可能被阻止 - 不知道为什么
-
这可以在 JMX 中完成吗?
标签: java kill infinite-loop