Share via


recursive_mutex クラス

mutex 型を表します。 mutex とは異なり、既にロックされているオブジェクトのロック メソッドを呼び出す動作は詳細に定義されています。

構文

class recursive_mutex;

メンバー

パブリック コンストラクター

名前 説明
recursive_mutex recursive_mutex オブジェクトを構築します。
~recursive_mutex デストラクター recursive_mutex オブジェクトによって使用されているすべてのリソースを解放します。

パブリック メソッド

名前 説明
lock 呼び出しスレッドがミューテックスの所有権を取得するまでそのスレッドをブロックします。
try_lock ブロックせずにミューテックスの所有権を取得しようとします。
unlock ミューテックスの所有権を解放します。

必要条件

ヘッダー:<mutex>

名前空間: std

ロック (lock)

呼び出しスレッドが mutex の所有権を取得するまでそのスレッドをブロックします。

void lock();

解説

呼び出しスレッドが既に mutex を所有している場合、メソッドが直ちに返され、以前のロックは有効のままになります。

recursive_mutex

ロックされていない recursive_mutex オブジェクトを構築します。

recursive_mutex();

~recursive_mutex

オブジェクトによって使用されるすべてのリソースを解放します。

~recursive_mutex();

解説

デストラクターの実行時にオブジェクトがロックされる場合の動作は未定義です。

try_lock

ブロックせずに mutex の所有権を取得しようとします。

bool try_lock() noexcept;

戻り値

メソッドが mutex の所有権を正常に取得した場合、または呼び出し元のスレッドがすでに mutex**; otherwise, **false を所有している場合は true です。

解説

呼び出しスレッドが既に mutex を所有している場合、関数が直ちに true を返し、以前のロックは有効のままになります。

ロック解除

ミューテックスの所有権を解放します。

void unlock();

解説

このメソッドが mutex の所有権を開放するのは、lock および try_lockrecursive_mutex オブジェクト上で正常に呼び出されたのと同じ回数だけ呼び出された後のみです。

呼び出しスレッドが mutex を所有していない場合の動作は未定義です。

関連項目

ヘッダー ファイル リファレンス
<mutex>