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 当前未被调用线程锁定,则此函数永远不会抛出异常(无异常保证)。
否则,将导致未定义行为

另见