我正試圖在java中創建幾個計劃任務。RejectedExecutionException。游泳池大小太小?
然而,當我添加多個任務,他們中的一些崩潰返回此異常:在線程
異常「主要」 java.util.concurrent.RejectedExecutionException:任務java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask @從[email protected]拒絕219baf0b [關閉,池大小= 2,活動線程= 0,隊列任務= 4,已完成的任務= 0]
這是我使用的代碼:
final ScheduledExecutorService schExService;
/**
* Constructor per defecte de TaskSchedulker. Aquí s'inicaran els atributs i
* s'instanciaran els objectes necessaris per disposar d'un programador com
* el descrit totalement funcional.
*/
public TaskScheduler() {
schExService = Executors.newScheduledThreadPool(2);
}
public void addTask(){
final Runnable ob = new ExecutaFil(tskParams);
schExService.schedule(ob, toSeconds(timeToWait), TimeUnit.SECONDS);
}
而且我多次觸發addTask方法。
ExecutaFil只是一個實現Runnable
的類,其中sleep
。
任何提示?
我試着改變池值(從2到例如100),它忽略了。池大小從來沒有高於4.我想這是直接關係到處理器?我怎樣才能解決這個問題?
您能提供一個簡短但完整的程序來證明問題嗎? –