LinuxC线程互斥与线程同步

一、什么是线程互斥?

来自百度百科的解释:

线程互斥是指某一资源同时只允许一个访问者(线程)对其进行访问,具有唯一性排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

举例说明:

场景:线程1、线程2、临界资源
需求:线程1和线程2共享“临界资源”,线程1和线程2至少有一个有修改“临界资源”的需求,但是线程1和线程2不分优先级,不需要控制访问顺序
推荐实现方式
1,互斥锁mutex lock
2,自旋锁spin lock
3,信号量(二进制信号量0/1状态实现互斥即可)
代码展示

二、什么是线程同步?

摘选自百度百科的解释:

线程同步就是多个线程协同步调,按预定的先后次序进行运行。“同”字从字面上容易理解为一起动作。其实不是,“同”字应是指协同、协助、互相配合

举例说明:

场景:线程1、线程2、线程3、临界资源
需求:线程1、线程2、线程3共享“临界资源”,线程1操作完“临界资源”,由线程2操作“临界资源”,待线程2操作完“临界资源”后,线程3操作“临界资源”。也就是说,“临界资源”的访问顺序为:线程1->线程2->线程3。
推荐实现方式
1,条件变量Conditional variable+互斥锁
代码展示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值