您当前的位置: 首页 >  ar

令狐掌门

暂无认证

  • 4浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++11多线程(五):std::lock_guard类的用法

令狐掌门 发布时间:2020-02-23 00:08:38 ,浏览量:4

        lock_guard类位于mutex头文件下,使用前需要包含如下语句:

#include
using namespace std;

        std::lock_guard类采用RAII手法管理某个锁对象,启动能是在对象构造时将mutex加锁,无需手动调用lock()方法,析构时对mutex解锁,这样保证在异常的情况下mutex可以在lock_guard对象析构时被解锁,不会阻塞其它线程获取mutex.

        lock_guard最大的特点就是安全易于使用,通过lock_guard对象管理的mutex哪怕异常抛出的时候也可以正确的解锁。

        例如如下代码,我们使用原生mutex, 线程A当i==3时,抛出异常,此时A处于异常,mutex没有被解锁,B线程死锁无法执行,程序被阻塞卡死。

#include
#include
#include
#include
using namespace std;
using  namespace  std::this_thread;
mutex  m;

void  ThreadFun()
{
	try
	{
		fo
关注
打赏
1652240117
查看更多评论
立即登录/注册

微信扫码登录

0.0826s