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