我正在编写一个代码,该代码从文件中提取多个API调用详细信息,并逐个执行这些详细信息,并将响应数据提供给ArrayList。下面是我当前的代码。
org.apache.kafka.streams.kstream.internals.KTableKTableRightJoin.KTableKTableRightJoinProcessor#process
随着API调用数量的增加,这将占用所有调用的响应时间之和。我希望这些调用并行运行,并将响应数据存储在ArrayList中,以便我进一步使用。 我是Java的新手,所以有人可以帮助我吗?
答案 0 :(得分:4)
您可以使用并行流。以下调用将并行调用createAPICallDetails(idx)
并将其返回对象添加到List
中:
List<APICallDetails> result = IntStream.range(0, callsCount)
.parallel()
.mapToObj(idx -> createAPICallDetails(idx))
.collect(Collectors.toList());
因此,唯一剩下的就是实现以下逻辑:
APICallDetails createAPICallDetails(int index) { ... }
要在给定APICallDetails
参数的情况下为index
创建单个对象,以便可以在前一个lambda中使用它。
希望这会有所帮助。