ファイル本体の特定のパターンを見つけるために、ディスク内のファイルツリーを走査する単純なJavaアプリケーションを検討してください。ファイル内のテキストパターンを見つけるためのマルチスレッド化手法
マルチスレッドを使用すると、固定フォルダThreadPoolで新しいRunnableを送信する新しいフォルダが見つかった場合など、パフォーマンスを向上させることができます。実行可能なタスクは、新しいフォルダなどを見つけるためにフォルダを横断する必要があります。私の考えでは、この操作はIOバウンドでなければなりません。
ハードドライブの種類によって異なりますか? (hdd、... etc) OSの種類によって異なりますか?
IMHO唯一のことは、ファイル本体のパターンを見つけるためにファイル内容を解析するための新しいスレッドを生成することです。
この問題を解決する一般的なパターンは何ですか?それはマルチスレッドかシングルスレッドか?
それは間違いなく、ディスクの種類によって異なります...シーク時間がない小さな問題です(あなたはSSDを使用しない場合には、ある)ので、ここでマルチスレッドを使用する利点はありません。 2つのファイルについて、それらを並行して読むと、OSはファイル1から読み込み、次にファイル2を探し、次にファイル2から読み込む必要があります。 – fge
なぜそれを試してみませんか?ファイルバッファでパターンを検索すると、かなりCPUを消費します。従来のハードディスクのシーク時間は、ディスクがネットワークを介して接続されている場合でも、それほど大きな問題ではありません。 1つのバッファのシーク時間が、別のバッファのパターンをスキャンするのと並行して実行された場合、合理的な拡張と思われる。それを行って、何が起こるかを見てください!それがより良い、同じか悪いかどうか私たちに知らせてください。 –