2009-12-22 68 views
1

我有这样的问题:的Java:同步的(对象)和RejectedExecutionException

我有访问一个对象,具有synchronized(Object) { ... }

但有时此异常被提出的几个主题:

执行:java.util.concurrent.RejectedExecutionException

为什么?我应该怎么做?

感谢

+0

你在这里的任何地方使用Executor吗?我遇到过这种情况,因为任何原因(队列满了等),我的执行程序不会执行任何工作。 – Todd 2009-12-22 20:17:34

回答

2

该异常是指由Executor.execute提高 - 你当然不应该仅仅通过在synchronized块访问对象上看到它。

查看堆栈跟踪的其余部分,确切了解它发生的位置,然后查看该消息以查看是否可以为您提供有关获取它的原因的更多信息。正如Todd评论的那样,这通常是由于像一个完整的工作队列。

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

+0

是的,谢谢,我错了 – Andrey 2009-12-22 20:28:44