我有这个问题:
我有几个线程使用synchronized(Object) { ... }访问一个对象
但有时会引发此异常:
执行:java.util.concurrent.RejectedExecutionException
为什么?我该怎么处理它呢?
谢谢
发布于 2009-12-23 04:21:34
这个异常是由Executor.execute引发的-您当然不应该仅仅通过访问synchronized块中的对象来看到它。
看看堆栈跟踪的其余部分,找出它发生的确切位置,并查看消息,看看它是否为您提供了更多关于获取它的原因的信息。正如Todd评论的那样,这通常是由于工作队列已满之类的原因。
例如,如果队列用于缓冲要运行的任务拒绝接受更多项,则ThreadPoolExecutor将抛出此异常。这通常表示您的系统超载,或者您错误地配置了executor。
https://stackoverflow.com/questions/1948777
复制相似问题