Java 拒绝执行异常。游泳池太小了?
我正在尝试用java创建几个计划任务 但是,当我添加多个任务时,其中一些任务会崩溃并返回此异常: 线程“main”java.util.concurrent.RejectedExecutionException中的异常:任务java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@219baf0b已从java.util.concurrent中拒绝。ScheduledThreadPoolExecutor@74010c69[正在关闭,池大小=2,活动线程=0,排队任务=4,已完成任务=0] 这是我正在使用的代码:Java 拒绝执行异常。游泳池太小了?,java,multithreading,Java,Multithreading,我正在尝试用java创建几个计划任务 但是,当我添加多个任务时,其中一些任务会崩溃并返回此异常: 线程“main”java.util.concurrent.RejectedExecutionException中的异常:任务java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@219baf0b已从java.util.concurrent中拒绝。ScheduledThreadPoolExecutor@74010c69
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。我想这和处理器有直接关系吧?我怎样才能解决这个问题
已从java.util.concurrent中拒绝。ScheduledThreadPoolExecutor@74010c69[关闭,池大小=2,活动线程=0,排队任务=4,已完成任务=0]
这意味着您通过对执行器调用shutdown()来关闭它。如果要继续添加任务,请不要关闭它
我想这和处理器有直接关系吧
错误消息中没有任何提示
已从java.util.concurrent中拒绝。ScheduledThreadPoolExecutor@74010c69[关闭,池大小=2,活动线程=0,排队任务=4,已完成任务=0]
这意味着您通过对执行器调用shutdown()来关闭它。如果要继续添加任务,请不要关闭它
我想这和处理器有直接关系吧
错误消息中没有任何内容表明这一点。您能提供一个简短但完整的程序来演示问题吗?您能提供一个简短但完整的程序来演示问题吗?