共用方式為


recursive_timed_mutex 類別

表示「計時 mutex 類型」。 藉由在程式內使用限時的封鎖,可以使用這個類型的物件來強制執行互斥。 不同於 timed_mutex 類型的物件,已針對 recursive_timed_mutex 物件妥善定義呼叫鎖定方法的效果。

語法

class recursive_timed_mutex;

成員

公用建構函式

名稱 描述
recursive_timed_mutex 建構未鎖定的 recursive_timed_mutex 物件。
~recursive_timed_mutex 解構函式 釋出 recursive_timed_mutex 物件所使用的任何資源。

公用方法

名稱 描述
lock 封鎖呼叫的執行緒,直到執行緒取得 mutex 的擁有權。
try_lock 嘗試在不造成封鎖的情況下,取得 mutex 的擁有權。
try_lock_for 嘗試取得所指定時間間隔內 mutex 的所有權。
try_lock_until 嘗試取得所指定時間間隔之前 mutex 的所有權。
unlock 釋放 mutex 的擁有權。

需求

Header:<mutex>

命名空間:std

lock

封鎖呼叫的執行緒,直到執行緒取得 mutex 的擁有權。

void lock();

備註

如果呼叫執行緒已經擁有 mutex,方法會立即傳回,而先前的鎖定仍持續有效。

recursive_timed_mutex 建構函式

建構未鎖定的 recursive_timed_mutex 物件。

recursive_timed_mutex();

~recursive_timed_mutex 解構函式

釋出 recursive_timed_mutex 物件所使用的任何資源。

~recursive_timed_mutex();

備註

如果執行解構函式時物件已鎖定,則行為是未定義的。

try_lock

嘗試在不造成封鎖的情況下,取得 mutex 的擁有權。

bool try_lock() noexcept;

傳回值

如果方法成功取得 mutex 的擁有權,或是呼叫執行緒已經擁有 mutex,即為 true,否則為 false

備註

如果呼叫執行緒已經擁有 mutex,函式會立即傳回 true,而先前的鎖定仍持續有效。

try_lock_for

嘗試在不造成封鎖的情況下,取得 mutex 的擁有權。

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

參數

Rel_time
chrono::duration 物件,此物件會指定方法嘗試取得 mutex 擁有權的時間上限。

傳回值

如果方法成功取得 mutex 的擁有權,或是呼叫執行緒已經擁有 mutex,即為 true,否則為 false

備註

如果呼叫執行緒已經擁有 mutex,方法會立即傳回 true,而先前的鎖定仍持續有效。

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 的擁有權。

傳回值

如果方法成功取得 mutex 的擁有權,或是呼叫執行緒已經擁有 mutex,即為 true,否則為 false

備註

如果呼叫執行緒已經擁有 mutex,方法會立即傳回 true,而先前的鎖定仍持續有效。

unlock

釋放 mutex 的擁有權。

void unlock();

備註

這個方法只會在呼叫它的次數與在 recursive_timed_mutex 物件上成功呼叫 locktry_locktry_lock_fortry_lock_until 的次數一樣多之後,才會釋放 mutex 的擁有權。

如果呼叫的執行緒未擁有 mutex,則行為是未定義的。

另請參閱

標頭檔參考
<mutex>