mutex
クラス (C++ 標準ライブラリ)
mutex 型を表します。 この型のオブジェクトを使用して、プログラム内で相互排他を適用できます。
構文
class mutex;
メンバー
パブリック コンストラクター/デストラクター
名前 | 説明 |
---|---|
mutex |
mutex オブジェクトを構築します。 |
~mutex |
mutex オブジェクトで使用されたすべてのリソースを解放します。 |
パブリック メソッド
名前 | 説明 |
---|---|
lock |
呼び出しスレッドが mutex の所有権を取得するまでそのスレッドをブロックします。 |
native_handle |
ミューテックス ハンドルを表す実装固有の型を返します。 |
try_lock |
ブロックせずに mutex の所有権を取得しようとします。 |
unlock |
mutex の所有権を解放します。 |
要件
ヘッダー: <mutex>
名前空間: std
lock
呼び出しスレッドが mutex
の所有権を取得するまでそのスレッドをブロックします。
void lock();
解説
呼び出しスレッドが既に mutex
を所有している場合の動作は未定義です。
Constructor
ロックされていない mutex
オブジェクトを構築します。
Visual Studio 2022 17.10 より前は、Microsoft によるこのコンストラクターの実装は constexpr
されませんでした。 これで constexpr
。
mutex() noexcept;
デストラクターです。
mutex
オブジェクトによって使用されているすべてのリソースを解放します。
~mutex();
解説
デストラクターの実行時にオブジェクトがロックされる場合の動作は未定義です。
native_handle
ミューテックス ハンドルを表す実装固有の型を返します。 ミューテックス ハンドルは、実装固有の方法で使用できます。
native_handle_type native_handle();
戻り値
native_handle_type
は Concurrency::critical_section *
として定義されます。 void *
としてキャストされます。
try_lock
ブロックせずに mutex
の所有権を取得しようとします。
bool try_lock();
戻り値
メソッドが true
の所有権の取得に成功した場合は mutex
を返します。それ以外の場合は false
を返します。
解説
呼び出しスレッドが既に mutex
を所有している場合の動作は未定義です。
unlock
mutex
の所有権を解放します。
void unlock();
解説
呼び出しスレッドが mutex
を所有していない場合の動作は未定義です。