try_lock 函数如果被调用时没有获得锁则直接返回 false。try_lock_for 函数接受一个时间范围,表示在这一段时间范围之内线程如果没有获得锁则被阻塞住,如果在此期间其他线程释放了锁,则该线程可以获得对互斥量的锁,如果超时(即在指定时间内还是没有获得锁),则返回 false。try_lock_until 函数则...
需要互斥访问共享资源的那段代码称为临界区,临界区范围应该尽可能的小,即 lock 互斥量后应该尽早 unlock,通过使用 {} 来调整作用域范围,可使得互斥量 g_mutex 在合适的地方被解锁。 voidsafePrint(std::stringmsg,intval){ {// 用此语句替换了g_mutex.lock(),参数为互斥锁g_mutexstd::lock_guard<std::mute...