概述
根據對象的析構函數自動調用的原理,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 }