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
を所有している場合の動作は未定義です。
コンストラクター
ロックされていない 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
を所有していない場合の動作は未定義です。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示