互斥锁:#include<pthread.h>
1、互斥锁的数据类型:
pthread_mutex_t
2、互斥锁的特点:
同步线程,同一时间只允许一个线程访问资源。
3、互斥锁的缺点:
效率低,操作之前要加锁和解锁操作
4、互斥锁的使用步骤:
创建一把锁 :pthread_mutex_t mrtux;
初始化这把锁:pthread_mutex_init(pthread_mutex_t *mutex,NULL);//第二个参数是互斥锁的属性,默认传NULL
确定共享资源的临界区
加锁pthread_mutex_lock(pthread_mutex_t *mutex);//可以认为mutex==0加锁失败时,线程会阻塞在这
临界区 (代码块越大效率越低,原则缩小临界区,尽量不要锁大片代码区)
解锁pthread_mutex_unlock(pthread_mutex_t *mutex);//可以认为mutex==1
5、互斥锁的相关函数
一:pthread_mutex_destroy(pthread_mutex_t *mutex);//销毁一把锁
二:pthread_mutex_trylock(pthread_mutex_t *mutex);//不阻塞尝试获得一把锁,失败则返回错误码且不阻塞。