C ++ライブラリ-<スレッド>
前書き
スレッドは、同じアドレス空間を共有しながら、マルチスレッド環境で他のそのようなシーケンスと同時に実行できる一連の命令です。
メンバータイプ
シニア番号 | メンバーの種類と説明 |
---|---|
1 | id スレッドIDです。 |
2 | ネイティブハンドルタイプ ネイティブハンドルタイプです。 |
メンバー関数
シニア番号 | メンバーの機能と説明 |
---|---|
1 | (コンストラクタ) スレッドを構築するために使用されます。 |
2 | (デストラクタ) スレッドをデストラクタするために使用されます。 |
3 | 演算子= ムーブ代入スレッドです。 |
4 | get_id スレッドIDを取得するために使用されます。 |
5 | 参加可能 参加可能かどうかを確認するために使用されます。 |
6 | 参加する スレッドを結合するために使用されます。 |
7 | デタッチ スレッドを切り離すために使用されます。 |
8 | スワップ スレッドを交換するために使用されます。 |
9 | native_handle ネイティブハンドルを取得するために使用されます。 |
10 | hardware_concurrency [静的] ハードウェアの同時実行性を検出するために使用されます。 |
非会員の過負荷
シニア番号 | 非会員の過負荷と説明 |
---|---|
1 | スワップ(スレッド) スレッドを交換するために使用されます。 |
例
以下のstd :: threadの例では。
#include <iostream>
#include <thread>
void foo() {
std::cout << " foo is executing concurrently...\n";
}
void bar(int x) {
std::cout << " bar is executing concurrently...\n";
}
int main() {
std::thread first (foo);
std::thread second (bar,0);
std::cout << "main, foo and bar now execute concurrently...\n";
first.join();
second.join();
std::cout << "foo and bar completed.\n";
return 0;
}
出力は次のようになります-
main, foo and bar now execute concurrently...
bar is executing concurrently...
foo is executing concurrently...
foo and bar completed.