建議使用 Visual Studio 2017

recursive_timed_mutex 類別

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

代表計時 mutex 類型。 此型別的物件用來強制使用時間限制封鎖程式內的互斥。 不同於物件型別的timed_mutex,呼叫的鎖定方法的效果recursive_timed_mutex已妥善定義的物件。

class recursive_timed_mutex;

公用建構函式

名稱說明
recursive_timed_mutex:: recursive_timed_mutex 建構函式建構recursive_timed_mutex未鎖定的物件。
recursive_timed_mutex:: ~ recursive_timed_mutex 解構函式釋放任何資源,可供recursive_timed_mutex物件。

公用方法

名稱說明
recursive_timed_mutex:: lock 方法封鎖呼叫的執行緒,直到執行緒取得 mutex 的擁有權。
recursive_timed_mutex:: try_lock 方法嘗試在不造成封鎖的情況下,取得 mutex 的擁有權。
recursive_timed_mutex:: try_lock_for 方法嘗試取得所有權的mutex指定的時間間隔。
recursive_timed_mutex:: try_lock_until 方法嘗試取得所有權的mutex直到指定的時間。
recursive_timed_mutex:: unlock 方法釋放 mutex 的擁有權。

標頭︰ mutex

命名空間: std

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

void lock();

備註

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

建構recursive_timed_mutex未鎖定的物件。

recursive_timed_mutex();

釋放任何資源,可供recursive_timed_mutex物件。

~recursive_timed_mutex();

備註

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

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

bool try_lock() noexcept;

傳回值

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

備註

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

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

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

參數

Rel_time
A chrono:: duration物件,指定最長時間,該方法會嘗試取得所有權的mutex

傳回值

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

備註

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

嘗試在不造成封鎖的情況下,取得 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或如果呼叫的執行緒已經擁有mutex,否則false

備註

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

釋放 mutex 的擁有權。

void unlock();

備註

這個方法會釋放的擁有權mutex只能每次呼叫之後鎖定try_locktry_lock_for,和try_lock_until成功呼叫上recursive_timed_mutex物件。

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

標頭檔參考
<>>

顯示: