次の方法で共有


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_typeConcurrency::critical_section *として定義されます。 void *としてキャストされます。

try_lock

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

bool try_lock();

戻り値

メソッドが true の所有権の取得に成功した場合は mutex を返します。それ以外の場合は false を返します。

解説

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

unlock

mutex の所有権を解放します。

void unlock();

解説

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

関連項目

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