gpt4 book ai didi

java - 如何组合两个 ListenableFuture 并获取第一个完成的结果

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

有没有一种简单的方法(提供库)来组合两个 com.google.common.util.concurrent.ListenableFuture并从第一个完成的结果中获取结果。

类似于 coalesce及时:

ListenableFuture f1 = ...;
ListenableFuture f2 = ...;
ListenableFuture f3 = Future.firstToComplete(f1,f2)

我想这相当于 CompletionStage。 applyToEither :

f3 = f1.applyToEither(f2, res->res);

最佳答案

听起来您想使用 Futures.inCompletionOrder只需等待列表中的第一个 future。

一旦第一个 future 完成,您可能会想要 cancel() 列表中所有剩余的 future,但是那里存在一个(大部分是良性的)竞争,其中 future 可能会在您完成时完成正在取消它们;这取决于完成的程度。在最坏的情况下,您最终可能会为所有其他 future 完成所有工作,但如果您主要关心的是延迟而不是底层工作项,那么这对您来说可能不会成为问题。

关于java - 如何组合两个 ListenableFuture 并获取第一个完成的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52153009/

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