回答編集履歴
2
C++規格書に言及
answer
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
「ハードウェアが提供するスレッド(論理コア)」「OSが提供するスレッド」「`std::thread` が提供するスレッド」というレベルがあり、それぞれがどういう対応をしているかは環境依存・実装依存の話です。`std::thread` がOSが提供するスレッドに1:1で対応するケースが多いでしょうが、ユーザランドスレッドで実装されている場合もありえます。
|
2
2
|
|
3
|
+
(追記: C++の規格書を読んだら、「`std::thread` はOSのスレッドに1:1対応することを意図している」というようなことが書いてありました。が、そうでない実装も規格違反ではないでしょう。)
|
3
4
|
|
5
|
+
|
4
6
|
> CPUのスレッド数(論理コア数)をこえることはできないもしくは超えると処理が著しく低下ということでしょうか?
|
5
7
|
|
6
8
|
環境依存です。スレッドのタイムシェアリングするようなOSではスレッド数が著しく増えてもトータルの実行時間はコンテキストスイッチのコストぶんしか遅くならないでしょう。
|
1
typo
answer
CHANGED
@@ -7,4 +7,4 @@
|
|
7
7
|
|
8
8
|
> タスクマネージャーにスレッド数2000という記載
|
9
9
|
|
10
|
-
OS上でたくさんのスレッドが動いていても、ほとんどスレッドはI/O待ちやイベント待ちで止まっていると思います。
|
10
|
+
OS上でたくさんのスレッドが動いていても、ほとんどのスレッドはI/O待ちやイベント待ちで止まっていると思います。
|