我正试图在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.我想这是直接关系到处理器?我怎样才能解决这个问题?
您能提供一个简短但完整的程序来证明问题吗? –