在这里,try_lock*
指的是try_lock()
、try_lock_for()
和try_lock_until()
。根据cppreference的描述,这三个方法都可能失败而无故返回。以下摘自try_lock_for()
方法的描述:
与
try_lock()
一样,此函数允许出现虚假唤醒,即使在timeout_duration
期间没有任何其他线程锁定互斥量,该函数也会返回false
。
我知道使用std::condition_variable
时可能会发生虚假唤醒,并了解其背后的原因。但是,对于互斥量呢?