【问题标题】:Will a ThreadPoolExecutor.CallerRunsPolicy ever throw a RejectedExecutionException?ThreadPoolExecutor.CallerRunsPolicy 会抛出 RejectedExecutionException 吗?
【发布时间】:2010-09-17 16:06:17
【问题描述】:

在什么情况下ThreadPoolExecutor.CallerRunsPolicy 会抛出RejectedExecutionException

在我看来,政策本身就是为了防止抛出这些异常。其接口方法的 API,RejectedExecutionHandler.rejectedExecution() 声称它可能会抛出 RejectedExecutionException。 CallerRunsPolicy.rejectedExecution() 的 API 没有。

总结:如果我使用CallerRunsPolicy,是否需要在execute() 上明确处理RejectedExecutionException

【问题讨论】:

    标签: java threadpool executor


    【解决方案1】:

    不,你没有。 ThreadPoolExecutor.CallerRunsPolicy 永远不会抛出RejectedExecutionException,除非你明确地将它抛出Runnable#run

    【讨论】:

    • 这也是我的理解。您是否找到任何证实这一点的 API 文档?
    • 另外,JDK6 的源代码为您提供支持。但我宁愿让 API 专门告诉我。 :) - 无论如何,我会接受这个答案。
    • 不,我没有找到任何说明这一点的 API 文档,我检查了 JDK 6 ThreadPoolExecutor.CallerRunsPolicy 来源。这很容易理解,那里没有抛出异常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2017-07-11
    • 2018-03-25
    • 2011-11-02
    • 1970-01-01
    相关资源
    最近更新 更多