互斥锁与条件锁的区别

互斥锁:互斥锁可以理解为排队上厕所,进去一个人(一个线程)->关上门(上锁)->拉粑粑(线程访问公共资源)->结束后出来打开门(释放锁),然后下一个人(队列中的线程)继续同样的操作。

条件锁:可以理解为排队进站,列车来了(signal)->VIP(线程优先级)先上->一次根据排队顺序上(排队先后时间);

当然,这里可能存在一个打开车门,大家一拥而上的问题。但是线程调用pthread_cond_signal不会有“惊群现象”产生,因为pthread_cond_signal最多只给一个线程发信号。如果有多个线程等待,会如同上述例子,先根据优先级执行,再根据等待时间依次执行线程。

注意:pthread_cond_signal调用最多发信一次。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值