各種Mutex(互斥量)的區別

2021-06-07 12:07:59 字數 795 閱讀 1750

原文: 

各種mutex的區別如下表:

鎖型別初始化方式

加解鎖特徵

排程特徵

普通鎖pthread_mutex_initializer

同一執行緒可重複加鎖,解鎖一次釋放鎖

先等待鎖的程序先獲得鎖

巢狀鎖pthread_recursive_mutex_initializer_np

同一執行緒可重複加鎖,解鎖同樣次數才可釋放鎖

先等待鎖的程序先獲得鎖

糾錯鎖pthread_errorcheck_mutex_initializer_np

同一執行緒不能重複加鎖,加上的鎖只能由本執行緒解鎖

先等待鎖的程序先獲得鎖

自適應鎖

pthread_adaptive_mutex_initializer_np

同一執行緒可重加鎖,解鎖一次生效

所有等待鎖的執行緒自由競爭

windows支援的鎖

pthread_mutex_recursive_np  即巢狀鎖

linux支援的鎖

pthread_mutex_fast_np  即 普通鎖

pthread_mutex_recursive_np  即巢狀鎖

pthread_mutex_errorcheck_np  即糾錯鎖

pthread_mutex_normal  即普通鎖

pthread_mutex_recursive  即巢狀鎖

pthread_mutex_errorcheck  即糾錯鎖

各種Mutex(互斥量)的區別

原文 各種mutex的區別如下表 鎖型別初始化方式 加解鎖特徵 排程特徵 普通鎖pthread mutex initializer 同一執行緒可重複加鎖,解鎖一次釋放鎖 先等待鎖的程序先獲得鎖 巢狀鎖pthread recursive mutex initializer np 同一執行緒可重複加鎖,...

C 日記 Day47 其他各種mutex互斥量

windows臨界區,同乙個執行緒是可以重複進入的,但是進入的次數與離開的次數必須相等。c 互斥量則不允許同乙個執行緒重複加鎖。raii類 resource acquisition is initialization 資源獲取及初始化 std mutex 獨佔式互斥量 std recursive m...

多執行緒 同步 Mutex互斥量

建立互斥量 handle createmutex lpsecurity attributes lpmutexattributes,安全性 bool binitialowner,true 建立執行緒擁有互斥量,false 相反 lpctstr lpname 執行緒名字,如果為null表示匿名,否則為命...