fj JAVA フレームワークを使い始めました。
私が理解しているように、アルゴリズム計算のような大きなタスクを分割し、それを小さなスレッドに分割するだけです。
問題は、このフレームワークをシングル プロセッサ マシンで使用する価値があるかどうかです。
ありがとう
5 に答える
通常、実行時のプロセッサの数を使用して、実行の構成を決定します。
シングル コア マシンを使用している場合でも、一度に複数のスレッドを実行できる場合があるため、fe fork-join を使用してこれを活用できます。CPU に実行スレッドが 1 つしかない場合は、マルチスレッド フレームワークを使用すると、通常の実行に比べてわずかなオーバーヘッドが発生します。
一方で、シングル コア マシンでアプリケーションを作成しても利益が得られない場合は、後で別のマシンを使用するか、マルチコア/スレッド マシンを使用しているユーザーにアプリケーションを提供できる可能性があります。アプリケーションを再度ビルドしたり、何も変更したりすることなく、その機能を利用できます。
そのため、アプリケーションの現在および将来の使用方法に大きく依存します。
各プロセッサにはスレッド スケジューラがあり、1 つのスレッドに時間を割り当てて作業を行うことができます。したがって、100 個のスレッドと 1 つのプロセッサしかない場合、スケジューラはそれらの 100 個のスレッドを切り替えるだけです。ただし、そうは言っても、単一のプロセッサで複数のスレッドを使用する利点はありません。これは、前述のように、スケジューラがスレッド間を非常に高速に切り替えるだけであるためです。さらに、CPU の観点からすると、コンテキストの切り替えは非常に遅くなります。