Executor服务每隔x秒运行一次

时间:2014-10-10 15:10:50

标签: java concurrency

让执行程序服务每x秒提交一次的正确方法是什么?

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

将run方法的内容包装一段时间(!Thread.currentThread()。isInterrupted())是一种有效的方法 - 如果不是,应该怎么做呢?

由于

1 个答案:

答案 0 :(得分:10)

使用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