|
分類:[.NET 全般]
コア数2、スレッド数4のCore i5のCPUが搭載されたPCを使っているのですが
Taskコマンドを使って 重い計算処理のマルチスレッドプログラムを作成しています。
マルチスレッドを使わない場合には、 4つあるうちの一つのスレッドしか使わないため、 タスクマネージャーで確認すると、 一つのスレッドだけが使用率100%でその他の3つが0%となります。
二つのタスクを同時に投げて計算を行うと なぜか、二つのスレッドが70%くらいで、他の二つが30%くらいとなります。 なぜ二つのタスクなのに、4つのスレッドを使用しているのでしょうか?
また、7つのタスクを同時に投げて計算を行うと 4つのスレッドが全て使用率100%になります。 スレッドの最大数よりも多いタスクを投げた場合、 どのように計算は行われるのでしょうか?
最初の4つが終わってから、残りの3つを計算するのか、 4つのスレッドで7つのタスクを同時にこなそうとするか どちらでしょうか?
|