gpt4 book ai didi

java - 如何并行处理多个任务并等待每个任务的成功失败

转载 作者:行者123 更新时间:2023-12-02 02:19:52 25 4
gpt4 key购买 nike

我有大约 5 个与从 HTTP 获取数据以及根据数据进行处理和生成结果相关的任务。

我想并行运行这些任务,并等待所有任务成功完成或其中一个任务失败。每个任务都应该能够发布失败原因。如果其中一项任务失败,则所有任务都被视为失败并退出,而不等待所有任务完成。

我尝试使用可完成的 future 和 future 列表来实现它,但它不起作用,并且代码不适合发布。

有没有更好的方法可以实现它?示例会有所帮助。

最佳答案

使用 allOf 静态方法或 Stream 方法。

方法 1:-

CompletableFuture<Void> combinedFuture 
= CompletableFuture.allOf(future1, future2, future3);

combinedFuture.get();

static CompletableFuture allOf(CompletableFuture... cfs) Returns a new CompletableFuture that is completed when all of the given CompletableFutures complete.

在这种方法中,您需要单独获取Future对象的结果并进行进一步的处理。

方法 2:-

方法 2 的优点是,假设 Future 返回 String 对象,Future 结果将连接起来并用单个空格分隔。

String combined = Stream.of(future1, future2, future3)
.map(CompletableFuture::join)
.collect(Collectors.joining(" "));

关于java - 如何并行处理多个任务并等待每个任务的成功失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48665417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com