gpt4 book ai didi

java - 如何让Task定时执行?

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

我有一个for循环:

for(int i=0; i<payloadList.size(); i++){
.....
}

和一个 boolean 变量“resultOk”。我希望每个循环都在 5 秒内完成(超时)。如果在 5 秒内,“resultOk”为 true,则将移至 for 循环中的下一个。如果时间到了,就会中断for循环。你能给我一些建议吗?怎么做?谢谢!

最佳答案

看一下这个例子(我不知道你在每种情况下想要做什么):

public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(1);
for (Callable<Boolean> payload : payloadList) {
Future<Boolean> result = executorService.submit(payload);
try {
if (!result.get(5, TimeUnit.SECONDS)) {
System.out.println("result was false");
break;
}
} catch (TimeoutException e) {
System.out.println("ran into a timeout");
result.cancel(true);
break;
} catch (Exception e) {
System.out.println("something went wrong");
break;
}
}
}

注意:您必须关闭 ExecutorService之后使用 shutdownNow()shutdown()。最好的方法是使用 try {} finally {} 语句,我省略了该语句以保持代码小而简单。

关于java - 如何让Task定时执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23336118/

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