C++ lock_guard 互斥锁


概述
根据对象的析构函数自动调用的原理,c++11推出了std::lock_guard自动释放锁,其原理是:声明一个局部的lock_guard对象,在其构造函数中进行加锁,在其析构函数中进行解锁。最终的结果就是:在定义该局部对象的时候加锁(调用构造函数),出了该对象作用域的时候解锁(调用析构函数)。

使用方法
1.首先需要包含mutex头文件
2.然后创建一个锁 std::mutex mutex
3.在需要被加锁的作用域内 将mutex传入到创建的std::lock_guard局部对象中

 1 #include <mutex>    /*std::mutex、 std::lock_guard*/
 2  
 3 std::mutex mutex;  4 
 5 void func()  6 {  7      //lock_guard 互斥锁 作用域内不可拷贝构造
 8  {  9          std::lock_guard<std::mutex> lg(m_mutex); 10          //函数内容
11  } 12 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM