1

我有这个问题:

我有几个线程可以访问一个对象synchronized(Object) { ... }

但有时会引发此异常:

执行:java.util.concurrent.RejectedExecutionException

为什么?我该怎么办?

谢谢

4

1 回答 1

2

该异常是由引发的Executor.execute-您当然不应该仅通过访问同步块中的对象来看到它。

查看堆栈跟踪的其余部分以准确确定它发生的位置,并查看消息以查看是否为您提供了有关您获得它的原因的更多信息。正如托德所说,这通常是由于工作队列满了。

例如,ThreadPoolExecutor如果队列用于缓冲要运行的任务拒绝接受更多项目,则会抛出此异常。这通常表明您的系统过载,或者您错误地配置了执行程序。

于 2009-12-22T20:21:34.310 回答