ドキュメントのキュー (基本的には、入力ディレクトリにあるすべてのドキュメント) を処理するアプリケーションがあります。ドキュメントは 1 つずつ読み込まれ、処理されます。1 つのドキュメントを処理した結果は、他のドキュメントを処理した結果から完全に独立しているため、このアプリケーションは明らかにスレッド化の候補です。問題は、仕事をどのように分担するかです。
作業を分割する 1 つの明白な方法は、キュー内のドキュメントの数を数え、使用可能なプロセッサの数で割って、それに応じて作業を分割することです (たとえば、キューに 100 個のドキュメントがあり、4 つの使用可能なプロセッサがある場合、4 つのスレッドを作成し、キューから各スレッドに 25 個のドキュメントをフィードします)。
ただし、同僚は、キュー内のドキュメントごとにスレッドを生成し、Java JVM にそれを整理させることができると提案しています。これがどのように機能するのかわかりません。2 番目の方法がよりクリーンなコードになることはわかりますが、最初の方法と同じくらい効率的 (またはさらに効率的) ですか?
任意の考えをいただければ幸いです。
エリオット