线程互斥通信之互斥锁

在上一讲我们通过信号量接口函数实现了线程的同步通信,这次我们通过互斥锁来进行线程间的互斥通信。
线程的互斥机制是依靠临界资源。
临界资源的概念是:一次只允许一个任务(进程、线程)访问的共享资源。
互斥机制依靠的就是mutex互斥锁,任务访问临界资源前申请锁(即共享资源-1),访问完后释放锁(+1)。
线程互斥实现接口:
1.互斥锁初始化:int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_mutexattr_t * attr);
成功时返回0,失败时返回错误码
mutex 指向要初始化的互斥锁对象
attr 互斥锁属性,NULL表示缺省属性
2.释放锁:int pthread_mutex_unlock(pthread_mutex_t *mutex);
成功时返回0,失败时返回错误码
mutex 指向要初始化的互斥锁对象
执行完临界区要及时释放锁
3.申请锁:int pthread_mutex_lock(pthread_mutex_t *mutex);
成功时返回0,失败时返回错误码
mutex 指向要初始化的互斥锁对象
如果无法获得锁,任务阻塞

互斥锁的功能信号亮也能实现,只需要将信号量永远都只有0和1两个值就好。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值