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