[英]Java code should execute every 5 seconds for one minute
我的要求是我的 java 代码应该每 5 秒执行一次,直到一分钟。 我的代码应该在 1 分钟完成后每 5 秒开始运行,它应该停止执行,这意味着我的代码应该执行 12 次并且应该停止。 我在这个例子的帮助下尝试了 java util Timer 和 TimerTask ......但它满足了我的要求,它具有每 5 秒执行一次的功能,但它没有在一分钟后终止执行的功能......
任何建议都会有所帮助谢谢...
从 Java 1.5 开始,引入了 ScheduledExecutorService 并且它比 TimerTask 更受欢迎。 你可以用它来实现你的要求:
ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(2);
ScheduledFuture<?> schedule = executor.scheduleAtFixedRate(() -> {
//do what you want
}, 0, 5, TimeUnit.SECONDS);
executor.schedule(() -> schedule.cancel(false), 1, TimeUnit.MINUTES);
正如您所看到的 scheduleAtFixedRate 安排您的主要任务以固定速率每 5 秒运行一次。 如果您希望它在任务之间休眠 5 秒,请尝试使用 scheduleWithFixedDelay。 第二个计划在一分钟后只运行一次以取消前一个计划。
编辑:
要在 1.8 之前的 Java 中使用,只需将 lambda 部分()->{...}
替换为
new Runnable() {
@Override
public void run() {
...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.