2016-12-04 986 views
-2

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

任何建议将是有益的 谢谢你......

+4

更换拉姆达部分()->{...}显示你的尝试。什么要求不满意? –

+0

将您的代码添加到人们帮助您... – RohitS

+0

可能的重复[如何停止Runnable计划重复执行一定数量的执行后](http://stackoverflow.com/questions/7269294/how-to- stop-a-runnable-scheduled-for-repeated-execution-after-a-certain-number-o) – Shastick

回答

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。第二个时间表在一分钟后运行一次以取消前一个时间表。

编辑:

在Java中使用之前1.8只是

new Runnable() { 
      @Override 
      public void run() { 
       ... 
      } 
     } 
+0

这就是我想要的,但是我正在使用java 1.7。 lamda表达剂量为我工作。 –

+0

你可以用Runnable替换lambda部分,没有任何变化 – Hekmatof

+0

检查我的编辑。注意它只是一个匿名类。你也可以创建一个扩展Runnable的类并传递它的一个实例 – Hekmatof

相关问题