次の方法で共有


timed_mutex クラス

timed mutex 型を表します。 この型のオブジェクトは、プログラム内での時間制限ブロックを使った相互排他を強制するのに使用されます。

構文

class timed_mutex;

メンバー

パブリック コンストラクター

名前 説明
timed_mutex ロックされていない timed_mutex オブジェクトを構築します。
timed_mutex::~timed_mutex デストラクター timed_mutex オブジェクトによって使用されているすべてのリソースを解放します。

パブリック メソッド

名前 説明
lock 呼び出しスレッドが mutex の所有権を取得するまでそのスレッドをブロックします。
try_lock ブロックせずに mutex の所有権を取得しようとします。
try_lock_for 指定した時間間隔で、mutex の所有権の取得を試みます。
try_lock_until 指定した時刻まで mutex の所有権の取得を試みます。
unlock mutex の所有権を解放します。

要件

ヘッダー:<mutex>

名前空間: std

timed_mutex::lock

呼び出しスレッドが mutex の所有権を取得するまでそのスレッドをブロックします。

void lock();

解説

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

timed_mutex::timed_mutex コンストラクター

ロックされていない timed_mutex オブジェクトを構築します。

timed_mutex();

timed_mutex::~timed_mutex デストラクター

mutex オブジェクトによって使用されているすべてのリソースを解放します。

~timed_mutex();

解説

デストラクターの実行時にオブジェクトがロックされる場合の動作は未定義です。

timed_mutex::try_lock

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

bool try_lock();

戻り値

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

解説

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

timed_mutex::try_lock_for

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

template <class Rep, class Period>
bool try_lock_for(const chrono::duration<Rep, Period>& Rel_time);

パラメーター

Rel_time
メソッドが mutex の所有権の取得を試行する時間について、その最大値を指定する chrono::duration オブジェクト。

戻り値

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

解説

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

timed_mutex::try_lock_until

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

template <class Clock, class Duration>
bool try_lock_for(const chrono::time_point<Clock, Duration>& Abs_time);

bool try_lock_until(const xtime* Abs_time);

パラメーター

Abs_time
メソッドが mutex の所有権の取得を止めるしきい値を指定する時点。

戻り値

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

解説

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

timed_mutex::unlock

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

void unlock();

解説

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

関連項目

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