繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM