条件变量和互斥锁结合使用的原理

条件变量和互斥锁结合使用的原理

问题描述:

为什么课程里说到条件变量和互斥锁结合便可以解决这个问题呢?这个原理该怎么理解?

https://img1.sycdn.imooc.com//climg/63a0680309f5dfa407130204.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
山行老师 2022-12-19 23:05:50
逻辑上是这样子的,接受这个逻辑就可以了。
山行老师 2022-12-19 23:05:02
条件变量和互斥锁是为了解决占用锁又不具备运行条件的问题,举个例子:
学生A准备去买一双鞋,刷卡的时候发现余额不足,只能放弃消费回去睡觉;过一会,学生A收到奖学金到账短信,于是被唤醒继续去商场买鞋。
这个消费过程和收入过程就可以用条件变量描述:
1)消费线程抢占锁,但发现不具备消费条件时,就应临时性释放锁,解除对账户的控制,并阻塞在某一个条件变量上(释放pthread_cond_wait( ));
2)生产线程抢到锁后继续生产,生产结束后释放锁,并通过条件变量通知消费线程进行间接唤醒(唤醒pthread_cond_signal( ))
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师