gpt4 book ai didi

java - RxJava2 并行执行一堆 Completables 并等待所有完成

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:36:40 35 4
gpt4 key购买 nike

我想执行几个阻塞方法(网络调用、计算任务)。我想并行执行它们,并在它们全部完成时收到通知,或者如果其中任何一个失败(抛出异常)则收到错误消息。它们不会发出结果,所以 Observable.zip() 不会帮助我。

到目前为止我有:

Completable a = computationTaskA();
Completable b = computationTaskB();
Completable c = computationTaskC();
Completable all = Completable.concat(Arrays.asList(a, b, c))
.subscribe(() -> {
// all succeed
}, e -> {
// any fails
});

但是 Completable.concat() 文档说 返回一个 Completable,它只有在所有源都一个接一个地完成时才完成。。我找不到可以并行执行它们的解决方案。

最佳答案

您可能想使用 Completable.merge/mergeArray

Completable a = computationTaskA();
Completable b = computationTaskB();
Completable c = computationTaskC();
Completable all = Completable.mergeArray(a, b, c);

all.subscribe(
() -> { /* success all around! */ },
e -> { /* at least one failure :( */ }
);

关于java - RxJava2 并行执行一堆 Completables 并等待所有完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49386646/

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