gpt4 book ai didi

java - java中如何通过多线程处理大量文件

转载 作者:行者123 更新时间:2023-12-01 11:12:44 25 4
gpt4 key购买 nike

现在我本地有很多JSON文件,我需要读取这些文件并将它们传输到JSONObject然后执行一些业务逻辑,例如找出子节点然后返回,计算一些特殊值然后返回。

作为单个文件,我已经完成了读取JSON文件的代码-->将其传输到JSONObject-->搜索子节点/计算一些特殊值。

但是如果有大量 JSON 文件,我该如何完成这项工作呢?我相信多线程可以解决我的问题,但是如何收集每个线程的结果并最终得到一个结果?

顺便问一下,如果我需要创建一个线程池,如何创建?

最佳答案

您可以尝试使用 Streams 对其进行多线程处理。不能保证这会更快,或者如果您的任务使用大量内存,您可能会耗尽内存,但这是尝试此操作的简单方法。

List<Result> results= Files.list(path).parallel()
.map(p -> turnFileIntoJSONObject(p))
.map(json -> process(json))
.collect(Collectors.toList());

这将在可用的 CPU 上分发要处理的文件,并在最后收集结果。

如果您觉得速度不快,您也可以删除 .parallel()

关于java - java中如何通过多线程处理大量文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164114/

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