gpt4 book ai didi

Java:线程/任务在指定毫秒后过期

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

在Java中,是否有一种合理的方法可以让线程/任务连续运行,然后在指定的运行时间后结束(最好不使用多个计时器)?

例如,如果我有 TimerTask ,似乎没有办法安排该任务在一定毫秒数后或在特定时间结束 Timer类。

当然,我可以将任务安排到 repeat几毫秒后,但是如果我希望它在一次迭代后结束怎么办?我必须在此计划任务中运行另一个计时器吗?我希望得到一个比这更优雅的答案。

this question中提供的答案可以工作,但这绝对不是我想要的。

本质上,我正在寻找类似于 AutoReset 的内容C# 的 System.Timers.Timer

上的属性

最佳答案

您可以使用ExecutorService,获取您获得的Future,并在您想要的时间后.cancel()它:

final Future<Whatever> f = executor.submit(...);
TimeUnit.SECONDS.sleep(xxx);
f.cancel(true);

或者您可以拥有两个服务:一个执行,另一个使用 ScheduledExecutorService 进行取消。

注意:TimerTask 取决于系统时间,请使用 ScheduledExecutorService 代替。

关于Java:线程/任务在指定毫秒后过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17824618/

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