0

一部からデータを取得し、解析を実行するスケジュールされたタスクを作成する必要があります->操作->出力ファイルの作成->出力ファイルの送信

MainExecutor クラス、Retriever クラス、Reader クラス、Builder クラス、Sender クラスの 5 つの作業クラスを使用したいと考えています。メインの MainExecutor クラスは、ScheduledThreadPoolExecutorを使用して、Retriever をスケジュールします。

このアプリをスケーラブルにしたいと考えています。これらの各クラス (Reader、Builder、Sender) を個別のスレッドにする必要がありますか?

それぞれにスレッド プールを使用する必要がありますか?

このプログラムを実装する最良の方法は何ですか?

4

1 に答える 1

0

Retriever と Sender はおそらくネットワークの待機をブロックし、Reader は IO 集中型である必要があり、Builder はおそらく CPU 集中型です。そうです、それらを異なるスレッドで実行することは理にかなっています。それらすべてに対して必要なスレッド プールは 1 つだけです。

これにより、アプリのスケーラビリティが向上し、パフォーマンス (スループット) も向上します。欠点は、スレッド間の通信を整理する必要があることです。

于 2013-02-22T14:49:31.393 に答える