您当前的位置: 首页 >  c++

令狐掌门

暂无认证

  • 0浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++11多线程(六):std::unique_lock类的用法

令狐掌门 发布时间:2020-02-23 00:37:05 ,浏览量:0

        unique_lock是个类模板,工作中,一般lock_guard(推荐使用),  lock_guard取代了mutex的lock()和unlock(); unique_lock比lock_guard灵活很多,可以手动控mutex解锁,效率率上差一点,内存占用多一点。还是使用上一篇的代码,处理A线程抛异常无法解锁的情况。

        下面使用unique_lock来解决,代码如下:

#include
#include
#include
#include

using namespace std;
using  namespace  std::this_thread;

std::mutex  m;

void  ThreadFun()
{
	try
	{
		for (int i = 0; i < 10; ++i)
		{
			std::unique_lock   lck(m);//哪怕发生异常也是可以安全解锁,因为lck会析构,然后解锁mutex

			if (i == 3)
				throw logic_error("发生异常了!");

			cout             
关注
打赏
1652240117
查看更多评论
0.0435s