【发布时间】:2017-11-20 22:09:31
【问题描述】:
有没有办法跟踪 Completeable Futures 中的失败状态?
我有一个场景,我有三个未来,其中 put() 可以成功或抛出运行时异常;我只希望两个成功。换句话说,如果第一个和第二个 put 成功,我想取消第三个并且不希望那个未来完成。但是,如果第一个失败了,我想继续其他两个。
如何跟踪 CompletableFuture 中的异常以及如何根据成功次数取消一组 Futures 中的一个 Future?
final CompletableFuture<Try<Void>> a = CompletableFuture.supplyAsync(() -> put());
final CompletableFuture<Try<Void>> b = CompletableFuture.supplyAsync(() -> put());
final CompletableFuture<Try<Void>> c = CompletableFuture.supplyAsync(() -> put());
CompletableFuture<Void> combinedFuture = CompletableFuture.allOf(a,b,c);
combinedFuture.get();
【问题讨论】:
-
可能 1) 回调或 2) 投票
-
你能再描述一下吗?
-
对不起,我不是Java这个角落的专业人士,所以我会为那些专业的人留下详细的答案。
标签: java future java.util.concurrent