【问题标题】:Java: synchronized(Object) and RejectedExecutionExceptionJava:同步(对象)和 RejectedExecutionException
【发布时间】:2009-12-22 20:01:09
【问题描述】:

我有这个问题:

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

但有时会引发此异常:

执行:java.util.concurrent.RejectedExecutionException

为什么?我该怎么办?

谢谢

【问题讨论】:

  • 你在这里的任何地方都使用了 Executor 吗?当我的 Executor 出于任何原因(队列已满等)不接受工作时,我遇到了这种情况。

标签: java exception synchronized


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 2011-12-12
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 2015-03-13
    • 1970-01-01
    相关资源
    最近更新 更多