Java代码应该每5秒执行一分钟

时间:2016-12-04 12:35:56

标签: java timer timertask

我的要求是我的java代码应该每5秒执行一次,直到一分钟。我的代码应该在完成1分钟后每隔5秒开始运行它应该停止执行,这意味着我的代码应该执行12次并且它应该停止。 我在这个example的帮助下尝试使用java util Timer和TimerTask ...但是它满足了我的要求它只具有每5秒执行一次的功能,但它没有在一个之后终止执行的功能分钟...

任何建议都会有所帮助 谢谢你...

1 个答案:

答案 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() {
              ...
            }
        }