名前空間
変種
操作

std::recursive_mutex

提供: cppreference.com
< cpp‎ | thread
 
 
スレッドサポートライブラリ
スレッド
(C++11)
(C++20)
(C++20)
this_thread 名前空間
(C++11)
(C++11)
(C++11)
相互排他
(C++11)
recursive_mutex
(C++11)
汎用ロック管理
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
条件変数
(C++11)
セマフォ
ラッチとバリア
(C++20)
(C++20)
フューチャー
(C++11)
(C++11)
(C++11)
(C++11)
 
 
ヘッダ <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_mutexMutex および StandardLayoutType の要件をすべて満たします。

目次

[編集] メンバ型

メンバ型 定義
native_handle_type(オプション) 処理系定義

[編集] メンバ関数

ミューテックスを構築します
(パブリックメンバ関数) [edit]
ミューテックスを破棄します
(パブリックメンバ関数) [edit]
operator=
[削除]
コピー代入可能ではありません
(パブリックメンバ関数) [edit]
ロック
ミューテックスをロックします。 利用可能でない場合はブロックします
(パブリックメンバ関数) [edit]
ミューテックスのロックを試みます。 利用可能でない場合はリターンします
(パブリックメンバ関数) [edit]
ミューテックスのロックを解除します
(パブリックメンバ関数) [edit]
ネイティブハンドル
処理系定義のベースとなるネイティブハンドルオブジェクトを返します
(パブリックメンバ関数) [edit]