我的要求是我的java代码应该每5秒执行一次,直到一分钟。我的代码应该在完成1分钟后每隔5秒开始运行它应该停止执行,这意味着我的代码应该执行12次并且它应该停止。 我在这个example的帮助下尝试使用java util Timer和TimerTask ...但是它满足了我的要求它只具有每5秒执行一次的功能,但它没有在一个之后终止执行的功能分钟...
任何建议都会有所帮助 谢谢你...
答案 0 :(得分:0)
从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 section()->{...}
new Runnable() {
@Override
public void run() {
...
}
}