std::recursive_mutex
提供: cppreference.com
ヘッダ <mutex> で定義
|
||
class recursive_mutex; |
(C++11以上) | |
recursive_mutex
クラスは複数のスレッドによる同時アクセスから共有データを保護するために使用できる同期プリミティブです。
recursive_mutex
は排他的で再帰的な所有権のセマンティクスを提供します。
- 呼び出し元スレッドは、
lock
またはtry_lock
のいずれかを呼んで成功したときから始まる期間、recursive_mutex
を所有します。 この間、そのスレッドはlock
またはtry_lock
をさらに呼ぶことができます。 そのスレッドが同じ回数だけunlock
を呼ぶと、所有権の期間は終了します。 - スレッドが
recursive_mutex
を所有しているとき、他のすべてのスレッドは、recursive_mutex
の所有権の取得を試みた場合、 (lock
の呼び出しに対して) ブロックされるか、 (try_lock
に対して) false の戻り値を受け取ります。 -
recursive_mutex
をロックできる回数の最大値は未規定ですが、その回数に達すると、lock
の呼び出しは std::system_error を投げ、try_lock
の呼び出しは false を返します。
いずれかのスレッドに所有されている間に recursive_mutex
を破壊した場合、プログラムの動作は未定義です。 recursive_mutex
は Mutex および StandardLayoutType の要件をすべて満たします。
目次 |
[編集] メンバ型
メンバ型 | 定義 |
native_handle_type (オプション)
|
処理系定義 |
[編集] メンバ関数
ミューテックスを構築します (パブリックメンバ関数) | |
ミューテックスを破棄します (パブリックメンバ関数) | |
operator= [削除] |
コピー代入可能ではありません (パブリックメンバ関数) |
ロック | |
ミューテックスをロックします。 利用可能でない場合はブロックします (パブリックメンバ関数) | |
ミューテックスのロックを試みます。 利用可能でない場合はリターンします (パブリックメンバ関数) | |
ミューテックスのロックを解除します (パブリックメンバ関数) | |
ネイティブハンドル | |
処理系定義のベースとなるネイティブハンドルオブジェクトを返します (パブリックメンバ関数) |