2

Я создаю задачи с ScheduledThreadPoolExecutor и добавляю фьючерсы в список, как показано ниже в моем классе ThreadFactory.Перезапуск отмененных задач в ScheduledThreadPoolExecutor

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); 
    } 

} 

Теперь, как перезапустить эти задачи в более поздний момент времени?

ответ

1

После того, будущее будет отменена, задача не может быть воскрешен на более позднем этапе. Взгляните на контракт javadoc will explain.

Чтобы перезапустить задачи, назначьте их еще раз исполнителем.

2

AFAIK вы не можете, вам нужно перенести их

Смежные вопросы