我正在尝试在 java 中创建几个计划任务。
但是,当我添加几个任务时,其中一些会崩溃并返回此异常:
线程“主”java.util.concurrent.RejectedExecutionException 中的异常:任务 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@219baf0b 从 java.util.concurrent.ScheduledThreadPoolExecutor@74010c69 被拒绝 [正在关闭,池大小 = 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。我猜它与处理器直接相关?我怎样才能解决这个问题?