gpt4 book ai didi

java - "Chain of Threads"是这个 Java 应用程序的糟糕解决方案吗?

转载 作者:搜寻专家 更新时间:2023-10-31 08:22:33 25 4
gpt4 key购买 nike

我正在运行一个程序,我下载大文件,解析它们,然后将从文件中提取的数据写入另一个文件。

文件下载和解析需要很长时间,但写入任务平均只需要一分钟左右。我综合考虑的解决方案是拥有三个由三个线程组成的固定线程池。

ExecutorService downloadExecutor = Executors.newFixedThreadPool(3);
ExecutorService parseExecutor = Executors.newFixedThreadPool(3);
ExecutorService writeExecutor = Executors.newFixedThreadPool(3);

下载池中的线程下载文件,然后将文件名作为参数提交给解析器线程池的新线程。这是在线程本身内完成的。然后下载线程开始工作,从文件 URL 列表中下载另一个文件。

一旦解析器线程从文件中解析完我想要的数据,它就会将包含数据的新线程提交到写线程池,然后将数据写入 .csv 文件。

我的问题是是否有更优雅的解决方案。我并没有真正做过很多复杂的线程。因为我有很多文件要下载和解析,所以我不希望任何线程在任何时候都处于空闲状态。我的想法是,由于解析文件可能需要一段时间,所以我不妨先创建单独的线程专门用于下载这些文件。

最佳答案

为什么不只使用一个线程池。下载、解析和保存必须相互等待,因此最好的任务分离是每个文件使用一个线程。

关于java - "Chain of Threads"是这个 Java 应用程序的糟糕解决方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31264775/

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