0

我正在尝试在 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 只是一个在其中实现的Runnablesleep

任何提示?

我尝试更改池值(从 2 到例如 100)并且它被忽略了。池大小永远不会高于 4。我猜它与处理器直接相关?我怎样才能解决这个问题?

4

1 回答 1

5

被 java.util.concurrent.ScheduledThreadPoolExecutor@74010c69 拒绝[正在关闭,池大小 = 2,活动线程 = 0,排队任务 = 4,已完成任务 = 0]

这意味着您可以通过调用shutdown () 来关闭执行程序。如果您想继续添加任务,请不要将其关闭。

我猜它与处理器直接相关?

错误消息中没有任何内容表明这一点。

于 2013-10-29T20:05:38.327 回答