public member function
<mutex>

std::timed_mutex::try_lock

bool try_lock();
鎖定 timed_mutex(如果未鎖定)
嘗試鎖定 timed_mutex,而不阻塞(其行為與 mutex 完全相同)。

  • 如果 timed_mutex 當前未被任何執行緒*鎖定*,則呼叫執行緒*鎖定*它(從此時起,直到呼叫其成員函式 unlock 為止,該執行緒*擁有* timed_mutex)。
  • 如果 timed_mutex 當前被另一個執行緒鎖定,則函式失敗並返回 false,而不阻塞(呼叫執行緒繼續執行)。
  • 如果 timed_mutex 當前被呼叫此函式的同一執行緒鎖定,則會發生*死鎖*(具有*未定義行為*)。請參閱 recursive_timed_mutex 以瞭解允許同一執行緒多次鎖定的*定時互斥型別*。

當沒有其他執行緒*鎖定* timed_mutex 時,此函式可能會出現虛假失敗,但在這些情況下重複呼叫將在某個時候成功。

timed_mutex 的所有*鎖定*和*解鎖*操作都遵循一個單一的總體順序,所有*可見效果*都在*鎖定操作*和同一物件上先前的*解鎖操作*之間同步。

引數



返回值

如果函式成功*鎖定*該執行緒的 timed_mutex,則返回 true
否則返回 false

資料競爭

timed_mutex 物件的訪問/修改是*原子操作*(不會導致資料競爭)。

異常安全

如果 timed_mutex 當前未被呼叫執行緒鎖定,則此函式永遠不會丟擲異常(無異常保證)。
否則,將導致未定義行為

另見