Java 在ScheduledThreadPoolExecutor中重新启动已取消的任务

Java 在ScheduledThreadPoolExecutor中重新启动已取消的任务,java,multithreading,threadpool,java.util.concurrent,futuretask,Java,Multithreading,Threadpool,Java.util.concurrent,Futuretask,我正在使用创建任务,并将未来添加到我的ThreadFactory类中的列表中,如下所示 private static List<Future> futures; ........ ScheduledFuture sf = executor.scheduleAtFixedRate(obj, delayInMilliSec, repeatPeriod, TimeUnit.MILLISECONDS); futures.add(sf); 私有静态列表期货; ........ Schedu

我正在使用创建任务,并将未来添加到我的ThreadFactory类中的列表中,如下所示

private static List<Future> futures;
........
ScheduledFuture sf = executor.scheduleAtFixedRate(obj, delayInMilliSec, repeatPeriod, TimeUnit.MILLISECONDS);

futures.add(sf);
私有静态列表期货;
........
ScheduledFuture sf=executor.scheduleAtFixedRate(obj,DelayIn毫秒,repeatPeriod,TimeUnit.ms);
期货.add(sf);
现在,当我想取消所有任务时,我会执行以下操作

public void cancelAllTasks(){

  Iterator<Future> fi = futures.iterator();

  while(fi.hasNext()){

     fi.next().cancel(true);
  }

}
public void cancelAllTasks(){
迭代器fi=futures.Iterator();
while(fi.hasNext()){
fi.next().cancel(true);
}
}

现在如何在以后重新启动这些任务?

如果您不能,您需要重新安排它们

一旦取消未来,任务将无法在稍后阶段重新启动。快速查看未来的合同

要重新启动任务,请与执行者一起再次安排任务