2014-10-10 106 views
3

让执行器服务每隔x秒提交一次正确的方式是什么?执行器服务每x秒运行

public void start() { 
    executorService.submit(new Runnable() { 
     public void run(){ 
      ScheduledFuture<Integer> result = executorService.schedule(value, x, TimeUnit.SECONDS); 
    }); 
} 

会包裹的run方法的内容在一段时间(!Thread.currentThread()isInterrupted())是一种有效的方法 - 如果不是应如何进行?

感谢

+5

退房'scheduleAtFixedRate'或'scheduleWithFixedDelay'从'ScheduledExecutorService'。 – 2014-10-10 15:12:59

回答

9

使用ScheduledExecutorService

ScheduledExecutorService ses = Executors.newScheduledThreadPool(10); 
ses.scheduleAtFixedRate(new Runnable() { 
    @Override 
    public void run() { 
     // do some work 
    } 
}, 0, x, TimeUnit.SECONDS); // execute every x seconds 
+0

谢谢你的帮助 – Biscuit128 2014-10-10 15:39:46