0

我需要创建一个从 somewere 检索数据的计划任务,然后执行解析 --> 然后操作 --> 然后创建输出文件 --> 然后发送输出文件

我想使用 5 个工作类:MainExecutor 类、Retriever 类、Reader 类、Builder 类、Sender 类 MainExecutor 类将使用ScheduledThreadPoolExecutor来调度 Retriever。

我想让这个应用程序可扩展。我是否需要将这些类(Reader、Builder、Sender)中的每一个都设为单独的线程?

我需要为每个人使用一个线程池吗?

实施该计划的最佳方式是什么?

4

1 回答 1

0

Retriever 和 Sender 大概会阻塞等待网络,Reader 肯定是 IO 密集型的,Builder 可能是 CPU 密集型的。所以是的,在不同的线程上运行它们是有意义的。您只需要一个线程池即可。

这将使您的应用程序更具可扩展性,并且还将提高性能(吞吐量)。缺点是您需要组织线程之间的通信。

于 2013-02-22T14:49:31.393 回答