以下是我的方法,在其中我使用单线程执行器来执行run方法中的一些任务。
以下是我收到的异常,但我不确定原因是什么?最好的解决方法是什么?
如果我的
private void trigger(final Packet packet) {
// this line is throwing exception
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
// some code here
}
});
}
以下是我收到的异常,但我不确定原因是什么?最好的解决方法是什么?
error= java.util.concurrent.RejectedExecutionException: Task com.abc.stuffProc$2@e033da0 rejected from java.util.concurrent.ThreadPoolExecutor@76c2da8f[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2048)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1372)
at java.util.concurrent.Executors$DelegatedExecutorService.execute(Executors.java:628)
如果我的
trigger
方法被多次调用,而它仍在运行之前线程的运行方法,会发生什么?它会启动多个线程还是等待一个线程完成后再启动另一个线程?