【发布时间】:2019-05-08 07:16:52
【问题描述】:
我正在使用 ThreadPoolExecutor,有几个消息提供线程将消息输入其中以进行处理。每个线程在提交之前都会检查执行器的深度。如果深度超过某个阈值,那么线程将等待一定的时间并再次检查。只有当它发现深度低于阈值时才会提交。所以我认为执行者不会因为太多消息而爆炸。但是,我仍然想知道我需要注意哪些例外情况。我只从 api "RejectedExecutionException" 中找到了可以来自执行程序的:
当 Executor 已关闭,以及 Executor 对最大线程和工作队列容量都使用有限边界且已饱和时,在方法 execute(java.lang.Runnable) 中提交的新任务将被拒绝。
RejectedExecutionException 是我需要在日志中注意的唯一异常吗?有人遇到执行人陷入困境的情况吗?在那种情况下会发生什么?我们还会看到 RejectedExecutionException 吗?还有其他可能的例外吗?非常感谢!
【问题讨论】:
标签: runtimeexception threadpoolexecutor