我正在使用ScheduledThreadPoolExecutor创建任务,并将Futures添加到我的ThreadFactory类中的列表中。
private static List<Future> futures;
........
ScheduledFuture sf = executor.scheduleAtFixedRate(obj, delayInMilliSec, repeatPeriod, TimeUnit.MILLISECONDS);
futures.add(sf);
现在,当我想要取消所有任务时,我会按照以下步骤进行操作
public void cancelAllTasks(){
Iterator<Future> fi = futures.iterator();
while(fi.hasNext()){
fi.next().cancel(true);
}
}
现在如何在以后重新启动这些任务?
答案 0 :(得分:2)
AFAik你不能,你需要重新安排他们
答案 1 :(得分:2)
取消未来后,任务无法在稍后阶段重新启动。快速浏览javadoc will explain未来合约。
要重新启动任务,请使用执行程序再次安排它们。