C# 2.0 経由で CLR を読み取る (現時点では 3.0 を持っていません)
これはまだですか:
コンピューターに CPU が 1 つしかない場合、一度に実行できるスレッドは 1 つだけです。Windows は、スレッド オブジェクトを追跡する必要があり、Windows は、次に CPU に行くためにどのスレッドをスケジュールするかを決定する必要があります。これは、20 ミリ秒ごとに実行する必要がある追加のコードです。Windows が CPU に 1 つのスレッドのコードの実行を停止させ、別のスレッドのコードの実行を開始させるとき、これをコンテキスト スイッチと呼びます。コンテキスト スイッチは、オペレーティング システムが次のことを行う必要があるため、かなりコストがかかります。
したがって、C# 2.0 経由の CLR については、Pentium 4 2.4 GHz 1 コア、非 HT、XP を使用しているとします。20ミリ秒ごと?CLR スレッドまたは Java スレッドが OS スレッドにマップされている場合、1 秒あたり最大 50 スレッドしか実行できない可能性がありますか?
ここSOではコンテキスト切り替えがミリ秒単位で非常に高速であると読んだことがありますが、5年ほど前のサーバーWindows 2003 Pentium XeonシングルコアがOSにコンテキスト切り替えの機会を与える頻度はどれくらいですか? 右の領域で 20 ミリ秒?
正確な数値は必要ありませんが、それが適切な領域にあることを確認したいだけです。私にはかなり長いようです。