互斥物件mutex
std::mutex
std::recursive_mutex 遞迴 mutex 類
std::timed_mutex 定時 mutex 類
std::recursive_timed_mutex 定時遞迴mutex類
boost
::mutex
boost
::try_mutex
boost
::timed_mutex
boost
::recursive_mutex
boost
::recursive_try_mutex
boost
::recursive_timed_mutex
boost::mutex
,boost::shared_mutex,其中mutex有lock和unlock方法,shared_mutex除了提供lock和unlock方法外,還有shared_lock和shared_unlock方法。因此,boost::mutex為獨佔互斥類,boost::shared_mutex為共享互斥類。shared_mutex可用於構造讀寫鎖。
模板類lock
lock基本模板類:templateclass lock_guard
lock基本模板類:templateclass unique_lock
boost:
boost::lock_guardguard(classmutex);
boost::unique_locklock(classmutex);
boost::shared_locklock(classmutex);
lock區域鎖類:scoped_lock
lock自旋鎖類:spinlock
boost::unique_lock
,boost::shared_lock,其中unique_lock為獨佔鎖,shared_lock為共享鎖。unique_lock中的t可以為mutex類中的任意一種,如果為shared_mutex,那麼boost:: unique_lock類的物件建構函式構造時,會自動呼叫shared_mutex的shared_lock方法,析構函式裡,會自動呼叫shared_mutex的shared_unlock方法。如果是boost:: unique_lock,則分別自動呼叫lock和unlock方法。
boost::shared_lock
中的t只能是shared_mutex類。
有錯誤的地方歡迎指正!
mutex與semaphore的區別
網摘1 mutex 的發音是 mjuteks 其含義為互斥 體 這個詞是mutual exclude的縮寫。mutex在計算機中是互斥也就是排他持有的一種方式,和訊號量 semaphore有可以對比之處。有人做過如下模擬 mutex是一把鑰匙,乙個人拿了就可進入乙個房間,出來的時候把鑰匙交給佇列的第...
C 中Mutex的用法
c 中mutex是互斥鎖,位於system.threading 命名空間中。顧名思義,它是乙個互斥的物件,同一時間只有乙個執行緒可以擁有它,該類還可用於程序間同步的同步基元。如果當前有乙個執行緒擁有它,在沒有釋放之前,其它執行緒是沒有權利擁有它的。我們可以把mutex看作洗手間,上廁所的人看作執行緒...
C 中Mutex的用法
c 中mutex是互斥鎖,位於system.threading 命名空間中。顧名思義,它是乙個互斥的物件,同一時間只有乙個執行緒可以擁有它,該類還可用於程序間同步的同步基元。如果當前有乙個執行緒擁有它,在沒有釋放之前,其它執行緒是沒有權利擁有它的。我們可以把mutex看作洗手間,上廁所的人看作執行緒...