C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 142 を表示中)
■83053 / )  マルチスレッドとスレッド数に関して
□投稿者/ むすむり (1回)-(2017/03/01(Wed) 18:18:53)

分類:[.NET 全般] 


コア数2、スレッド数4のCore i5のCPUが搭載されたPCを使っているのですが

Taskコマンドを使って
重い計算処理のマルチスレッドプログラムを作成しています。



マルチスレッドを使わない場合には、
4つあるうちの一つのスレッドしか使わないため、
タスクマネージャーで確認すると、
一つのスレッドだけが使用率100%でその他の3つが0%となります。


二つのタスクを同時に投げて計算を行うと
なぜか、二つのスレッドが70%くらいで、他の二つが30%くらいとなります。
なぜ二つのタスクなのに、4つのスレッドを使用しているのでしょうか?

また、7つのタスクを同時に投げて計算を行うと
4つのスレッドが全て使用率100%になります。
スレッドの最大数よりも多いタスクを投げた場合、
どのように計算は行われるのでしょうか?

最初の4つが終わってから、残りの3つを計算するのか、
4つのスレッドで7つのタスクを同時にこなそうとするか
どちらでしょうか?






返信 編集キー/


管理者用

- Child Tree -