mutex

int pthread_mutex_destroy (pthread_mutex_t *__mutex);  
mutex为定义的变量,mutexattr是属性,若为默认属性,可传入NULL
2.如果互斥量是静态分配的,也可以通过常量进行初始化
pthread_mutex_t mlock = PTHREAD_MUTEX_INITIALIZER;

3.互斥量的使用
int pthread_mutex_trylock (pthread_mutex_t *__mutex);    
int pthread_mutex_lock (pthread_mutex_t *__mutex);    
int pthread_mutex_unlock (pthread_mutex_t *__mutex);  

通过pthread_mutex_lock()函数获得访问共享资源的权限,
如果已经有其他线程锁住互斥量,那么该函数会是线程阻
塞指定该互斥量解锁为止。 pthread_mutex_trylock()是
对应的非阻塞函数,如果互斥量已被占用,它会返回一个
EBUSY错误。访问完共享资源后,一定要通过pthread_mutex_unlock() 函数,
释放占用的互斥量。允许其他线程访问该资源。
互斥量的使用流程应该是:线程占用互斥量,然后访问共享资源,最后释放互斥量

原文地址:https://www.cnblogs.com/zgen1/p/7487553.html