pthread_mutex_init() -- 互斥鎖初始化|pthread_mutex_destroy()--互斥鎖銷燬


原型

#include <pthread.h>
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);
int pthread_mutex_destroy(pthread_mutex_t *mutex);
在使用互斥鎖前,需要定義互斥鎖(全局變量),定義互斥鎖對象形式爲:
pthread_mutex_t lock;

在 pthread_mutex_init() 函數中:
第一個參數 mutex 是指向要初始化的互斥鎖的指針。
第二個參數 mutexattr 是指向屬性對象的指針,該屬性對象定義要初始化的互斥鎖的屬性。如果該指針爲 NULL,則使用默認的屬性。

此外,還可以用宏 PTHREAD_MUTEX_INITIALIZER 來初始化靜態分配的互斥鎖,如下:
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
對於靜態初始化的互斥鎖,不需要調用 pthread_mutex_init() 函數。

使用默認初始化互斥鎖:
pthread_muteattr_t mattr;
int retval;
pthread_mutex_init (&lock, NULL);
使用自定義屬性初始化互斥鎖:
ret = pthread_mutex_init (&lock, &mttr);
銷燬互斥鎖:
pthread_mutex_destroy (&lock);

互斥鎖初始化函數和銷燬函數在執行成功後都返回 0,否則返回錯誤編號以指名錯誤。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章