gpt4 book ai didi

java - 在 future list 上流式传输的最有效方式

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:22 25 4
gpt4 key购买 nike

我通过流式传输对象列表来调用异步客户端方法。该方法返回 Future。

遍历调用后返回的 Future 列表的最佳方法是什么(以便处理最先出现的 Future)?

注意:异步客户端只返回 Future 而不是 CompletableFuture。

代码如下:

List<Future<Object>> listOfFuture = objectsToProcess.parallelStream()
.map((object) -> {
/* calling an async client returning a Future<Object> */ })
.collect(Collectors.toList());

最佳答案

拥有 List<Future<Object>> 的列表,我会将其提交到自定义池,而不是使用默认的流并行处理。

那是因为流 api 使用公共(public)池进行并行处理,您将调用 get在这些 Futures 上(如果处理需要大量时间)——您将阻止所有其他在您的应用程序中使用并行操作的流操作,直到完成此操作。

这有点像这样:

forJoinPool.submit( () -> list.stream().parallel().map(future -> future.get()).collect(Collectors.toList())).get();

我会使用如图所示的自定义池 here

关于java - 在 future list 上流式传输的最有效方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43226405/

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