【发布时间】:2014-03-17 04:04:44
【问题描述】:
我有两个 Callable 任务同时运行,从一个主线程启动。这两个 Callable 中的任何一个都可能引发错误,我需要将此错误传递回主线程并在那里处理。此外,只要在任一 Callable 中发生错误,我就想在 main 中捕获它。但是,我看不出如何做到这一点。如果我只是等待 Callables 的两个 Futures
try {
future1.get();
future2.get();
} catch (ExecutionException e) {
// Handle the error...
}
然后我无法捕获第二个可调用对象中发生的错误。我必须等到第一个 callable 完成,要么正常,要么它本身引发错误。
我看不出还有什么办法可以做到这一点。有什么解决办法吗?
【问题讨论】:
标签: java multithreading concurrency future callable