互斥鎖的初始化

接口

1> 初始化互斥鎖

int pthread_mutexattr_init(pthread_mutexattr_t *attr);

2> 銷燬互斥鎖

int pthread_mutexattr_destroy(pthread_mutexattr_t *attr);

3> 設置互斥鎖類型

int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int kind);

4> 獲取互斥鎖類型

int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *kind);

 

互斥鎖類型

1. PTHREAD_MUTEX_TIMED_NP

缺省值; 當一個線程加鎖之後, 其餘請求的線程將形成一個等待隊列, 並在解鎖後按照優先級獲取鎖. 這種機制保證了資源分配的公平性.

2. PTHREAD_MUTEX_RECURSIVE_NP

嵌套鎖; 允許同一個線程對同一個鎖成功獲得多次, 並通過同樣次數的解鎖操作釋放鎖. 如果是不同線程請求, 則在加鎖線程釋放鎖時重新競爭.

3. PTHREAD_MUTEX_ERRORCHECK_NP

檢錯鎖; 如果同一個線程請求同一個鎖, 返回EDEADLK, 否則與缺省相同; 這種機制避免了多次加鎖產生死鎖的情況.

4. PTHREAD_MUTEX_ADAPTIVE_NP

適應鎖; 僅僅等待解鎖後重新競爭.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章