gpt4 book ai didi

java - 如何让Java程序运行指定的时间?

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

我想在文件列表上运行我的程序。但有些文件花费的时间比预期要长得多。所以我想在超时后终止线程/进程,并在下一个文件上运行程序。有什么简单的方法可以做到吗?我一次只运行一个线程。

编辑1:

很抱歉我没能早点说清楚。这是 for 循环代码。

for (File file : files)
{
//Perform operations.

}

所以一个文件就是Java程序文件,可以包含很多方法。如果方法数量较少,我的分析效果很好。如果有很多方法,比如 20 个方法,它会持续执行和分析它们几个小时。因此,在后一种情况下,我想完成该执行并转到下一个 java 文件。

而且我没有任何单线程的限制。如果多线程有效,它对我来说仍然有好处。谢谢。

最佳答案

这类事情通常是多线程完成的。有关示例,请参阅How to timeout a thread .

正如您所评论的,您正在寻找单线程解决方案。最好通过定期检查超时是否已过期来完成。某些线程必须执行检查,并且由于您请求它只有一个线程,因此检查必须位于代码中间的某个位置。

假设大部分时间都花在 while 循环中逐行读取文件。你可以这样做:

long start = System.nanoTime();
while((line = br.readLine()) != null) {
if(System.nanoTime() - start > 600E9) { //More than 10 minutes past the start.
throw new Exception("Timeout!");
}
... //Process the line.
}

关于java - 如何让Java程序运行指定的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22922833/

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