【问题标题】:How to get an Exception from Task runing in ExecutorService?如何从 ExecutorService 中运行的任务中获取异常?
【发布时间】:2015-08-03 12:52:44
【问题描述】:

我有一个实现 Runnable 接口的 A 类,这个类执行我的批处理作业。它们是一个控制器类,负责创建 ExecutorService 并在 for 循环中将 A 类的对象提交给 ExecutorService 实例。

我想终止所有任务的执行,如果任何任务执行遇到异常,因为它们很可能会在所有任务中引起异常,我希望将原因抛出给调用者代码。

我怎样才能做到这一点?

【问题讨论】:

标签: java multithreading exception exception-handling executorservice


【解决方案1】:

据我所知,Jdk 中没有提供任何魔法来管理任务的取消(在另一个同级线程出现问题之后)。看起来您需要跟踪 Future 实例并自己管理取消。

或者找一个为你完成工作的图书馆。如果 Spring Batch 支持这种情况,可能值得研究。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2011-01-15
    • 2017-02-16
    • 2022-10-02
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多