質問するログイン新規登録

回答編集履歴

2

C++規格書に言及

2021/01/14 04:59

投稿

int32_t
int32_t

スコア21954

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

2021/01/14 04:58

投稿

int32_t
int32_t

スコア21954

answer CHANGED
@@ -7,4 +7,4 @@
7
7
 
8
8
  > タスクマネージャーにスレッド数2000という記載
9
9
 
10
- OS上でたくさんのスレッドが動いていても、ほとんどスレッドはI/O待ちやイベント待ちで止まっていると思います。
10
+ OS上でたくさんのスレッドが動いていても、ほとんどスレッドはI/O待ちやイベント待ちで止まっていると思います。