遇到的C 常用mutex與lock記錄

2021-08-19 23:54:33 字數 1262 閱讀 5538

互斥物件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看作洗手間,上廁所的人看作執行緒...