1. 程式人生 > >boost多執行緒之scoped_lock理解

boost多執行緒之scoped_lock理解

最近突然用到了多執行緒,就把std::thread和boost::thread的文件都看了看,關於執行緒對共享區資源的訪問,有以下三種訪問方式:
(1) 等到其他加鎖的執行緒全部解鎖完畢再加鎖;
(2)若有其他執行緒已經對共享區資源上鎖,則返回;
(3) 等到其他加鎖的執行緒全部解鎖知直到截止時間
對於鎖,我覺得boost的scope_lock和C++的智慧指標有異曲同工之妙,均是巧妙地利用了C++的建構函式和解構函式的性質,物件在定義是,都會顯式或隱式第地呼叫建構函式,在物件的生存期結束時,又會自動呼叫解構函式,智慧指標利用這一點實現了記憶體的自動釋放,避免了記憶體洩漏,同樣,scope_lock也用解構函式進行共享資源的釋放,避免了資源的浪費。