2013-02-22 249 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密集型的。所以是的,在不同的線程上運行它們是有意義的。你只需要一個線程池。

這會使您的應用更具可伸縮性,並且還會提高性能(吞吐量)。缺點是你需要組織線程之間的通信。