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你不能,你需要重新安排他們

相關問題