我想知道ListenableFuture
是否有任何像allAsList
一样工作的实用程序,但如果你调用get(50, TimeUnit.Milliseconds)
返回所有已完成的内容。
最佳答案
不,但将来可能会有,我认为答案就在 there正如这个相关问题中所讨论的: ListenableFuture, FutureCallback and timeouts
基本上,您可以在所有 futures 上添加一个带有超时的回调,并在它们之上使用 Futures#successfulAsList() ,而不是使用特殊类型的 Futures#allAsList() 。因此,每个超时的 future 都会因 TimeoutException 而失败,并且 Futures#successfulAsList() 将仅返回成功的,即不会返回因任何类型的异常(包括 TimeoutException)而失败的那些。
不幸的是,这尚未在 guava 中实现(请参阅 guava 跟踪器问题的第一个链接),但至少已作为有效请求被接受。
关于java - Guava ListenableFuture allAsList 返回 get 到目前为止看到的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16309203/