这是我的问题:
我有一个带有返回值的任务,我想定期调用该任务,直到返回值为空。
我应该如何使用 ExecutorService?谢谢。
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
executorService.scheduleAtFixedRate(new Runnable() {
private final ExecutorService executor = Executors.newSingleThreadExecutor();
private Future<?> lastExecution;
@Override
public void run() {
//Make sure only one task is running
if (lastExecution != null && !lastExecution.isDone()) {
return;
}
//Do your task here
Object ret = doTask();
if (ret == null) {
executorService.shutdown();
}
}
}, 0, 3, TimeUnit.MINUTES);
请检查javadoc,它可能是错误的
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html