c++多线程(十九) - std::timed_mutex

    mutex获取和释放锁如下:

mutex myMutex;
myMutex.lock();
//业务代码
myMutex.unlock();

    当mutex获取锁失败时,线程会一直阻塞。

    timed_mutex带超时功能。在规定的等待时间内,没有获取锁,会继续执行,线程不会一直阻塞。

timed_mutex myMutex;
chrono::milliseconds timeout(100);  //100毫秒
if (myMutex.try_lock_for(timeout))
{
	//在100毫秒内获取了锁
	//业务代码
	myMutex.unlock();  //释放锁
}
else
{
	//在100毫秒内没有获取锁
	//业务代码
}

猜你喜欢

转载自blog.csdn.net/liyazhen2011/article/details/89811564