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毫秒内没有获取锁
	//业务代码
}

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐