java - 使用并行流生成列表
问题描述
我有一个 Json 字符串列表,其中包含电影列表。我需要收集这些电影,处理它们并将它们存储在磁盘中。我正在考虑使用并行流方法来收集电影并测试其性能。我的方法是这样的:
以下方法生成一个电影列表。
protected abstract List<T> parseJsonString(JsonIterator iter);
此方法包含一个并行流,该流收集流中生成的所有列表( List<List<Movies)
) 的列表:
public CompletableFuture<List<List<T>>> parseJsonPages(List<CompletableFuture<String>> jsonPageList)
{
return jsonPageList.parallelStream()
.map( jsonPageStr -> CompletableFuture.supplyAsync( () -> {
try {
return parseJsonString(JsonIterator.parse( jsonPageStr.get() ) );
}
catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
System.exit(-1);
}
return null;
} ) )
.collect( ParallelCollectors.toFuture( Collectors.toList() ) );
}
这种方法的问题是流将生成电影列表,然后将所有列表附加到列表中。你认为这是收集所有这些电影的有效方式吗?我是否应该将所有列表中的电影合并到一个列表中,而不是仅将整个列表附加到列表中(即使这也需要一些时间)。如果是这样,我该如何执行这样的任务?
提前致谢。
解决方案
推荐阅读
- node.js - nestjs mongoose .insertMany 不是函数
- javascript - 嵌入不显示斜杠命令
- angular - 在组件级别注入根中提供的第三方服务
- reactjs - 反应引导导航栏边框
- java - 从处理程序拦截器进行数据库调用是否明智?
- javascript - Javascript 错误消息显示 str.replace 不是函数
- c++ - 安装在 Mac M1 上的 Homebrew g++ 报告的“addend too big for relocation”错误
- php - Yii 2 CRUD url 问题
- javascript - Javascript 中的 Google Drive Api v3 - 公开共享文件并等待请求的结果
- python - 计算字符串中字符出现的次数?