1

現在、マルチスレッド、スレッド、スレッドプールなどについて学んでいます。スレッドの数は、コンピューターが持つ論理プロセッサの数を超えてはならないことを読みました (または、CPU がそれ以上処理できないため、少なくともメリットはありません)。

では、たとえば 12 個の論理プロセッサを搭載したコンピューターで数百のスレッドを作成するコードを記述した場合、どのような動作が予想されるのでしょうか? 彼らは列に並びますか?彼らはお互いを待ちますか?それともエラーになりますか?100 個の継続的に実行されるスレッドの恩恵を受けるプロセスがあるが、コアが 12 個しかない場合、これを処理する最善の方法は何ですか? タスク マネージャーを開くと、何百ものプロセスと何千ものスレッドが実行されていることがよくわかります。それはどのように機能しますか?

また、Windows でプログラムを実行していて、他の多くのアプリケーション (つまり、Chrome、MS Excel、Skype など) と、おそらくバックグラウンド サービス (つまり、Windows Defender、 Wifi サービスなど...) これらの他のアプリケーションは論理プロセッサを占有し、スレッド化されたプログラムで使用できる論理プロセッサの数を減らしますか?

4

2 に答える 2