线程同步之互斥锁(互斥量)

互斥锁:#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);//不阻塞尝试获得一把锁,失败则返回错误码且不阻塞。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值