Java:synchronized(Object)和RejectedExecutionException

时间:2009-12-22 20:01:09

标签: java exception synchronized

我有这个问题:

我有一些线程使用synchronized(Object) { ... }

访问一个对象

但有时提出这个例外:

执行:java.util.concurrent.RejectedExecutionException

为什么呢?我应该怎么做呢?

由于

1 个答案:

答案 0 :(得分:2)

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

查看堆栈跟踪的其余部分,以确切了解其发生的位置,并查看消息,看看是否能够提供有关您获取它的原因的更多信息。正如托德评论的那样,通常是由于完整的工作队列。

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