2013-02-22 217 views
0

的流量,我需要创建检索从somewere数据的计划任务,然后进行分析 - >然后操作 - >然后创建输出文件 - >然后发送输出文件计划任务

我想使用5个工作类:MainExecutor类,Retriever类,Reader类,Builder类,发件人类 主MainExecutor类将使用ScheduledThreadPoolExecutor来调度Retriever。

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

我是否需要为它们中的每一个使用线程池?

实施此程序的最佳方法是什么?

+0

取决于他们彼此之间的数据依赖关系,不是吗? – LtWorf 2013-02-22 14:50:42

回答

0

检索器和发件人大概会阻止等待网络,阅读器必须是IO密集型的,并且Builder可能是CPU密集型的。所以是的,在不同的线程上运行它们是有意义的。你只需要一个线程池。

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