複数のスレッドを持つ主な理由は、計算を高速化することです。各スレッドは、入力データの一部に対して、複雑な計算の一部を実行します。プロセッサ コアと同じ数のスレッドを使用すると、各スレッドが自由に実行され、1 秒あたりの計算数が増加します。このポイント (コア数) を超えてスレッド数を増やしても、あまりメリットはありません。プロセッサ アーキテクチャの他の部分 (メモリ、プロセッサ キャッシュ、その他の共有リソース) については、それがボトルネックになり、ほとんどの場合、すべてのスレッドが待機することを余儀なくされないように注意する必要があります。
スレッドを使用する 2 つ目の理由は、メイン スレッド (通常は GUI スレッド) からすべての時間のかかる操作を削除することです。アプリケーションはよりユーザーフレンドリーになり、ユーザーはウィンドウの「フリーズ」を経験しなくなります。
スレッドを使用する 3 つ目の理由は、コードを少し高速化すると同時に単純化することです。データと共有リソース (Web サービス、データベース、特殊なハードウェア、プリンター) を操作する複雑な操作があり、その複雑な操作をいくつかの単純な操作に分割でき、データに応じて操作の一部を省略できるとします。 . スレッドの「パイプライン」を持つことができます。各スレッドは、データに対して 1 つの単純な操作を行い、一部のリソースに排他的にアクセスし、結果をパイプライン内の他のスレッドに送信します。すべてのビット データを最初から最後まで実行するスレッドが 1 つしかない場合よりも全体的なプロセスは高速に実行されますが、コードもそれほど複雑ではありません。