次の方法で共有


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 を所有していない場合の動作は未定義です。

関連項目

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