1. 程式人生 > >boost庫讀寫鎖與互斥鎖的用法解析

boost庫讀寫鎖與互斥鎖的用法解析

#include <boost/thread/mutex.hpp>
#include <boost/thread/shared_mutex.hpp>

typedef boost::shared_mutex            WR_Mutex;
typedef boost::unique_lock<WR_Mutex>   writeLock;
typedef boost::shared_lock<WR_Mutex>   readLock;
WR_Mutex lkey;
當在使用者讀一塊記憶體區域時,使用讀鎖,防止多個執行緒同時訪問同一塊記憶體造成資料錯誤

readLock lk(lkey);

當在使用者修改一塊記憶體區域時,使用寫鎖,防止多個執行緒在操作記憶體的時候對其進行訪問而造成資料錯誤

writeLock lock(lkey);

提示:

boost鎖的概述:
boost庫中提供了mutex類與lock類,通過組合可以輕易的構建讀寫鎖與互斥鎖。

mutex物件類:
mutex類主要有兩種:boost::mutex,boost::shared_mutex,其中mutex有lock和unlock方法,
shared_mutex除了提供lock和unlock方法外,還有shared_lock和shared_unlock方法。
因此,boost::mutex為獨佔互斥類,boost::shared_mutex為共享互斥類。