大家好,今天主要给大家分享一下,如何使用条件变量以及具体实现方法。
第一:条件变量分析
条件变量是另一种逻辑稍微复杂一点点的同步互斥机制,他必须跟互斥锁一起配合使
他的应用场景也是非常常见的,先来看一个例子:
用,小楠是一名在校学生,每个月都会从父母那里得到一笔生活费。现在她的钱花光了,想
要去取钱。但是很显然取钱这样的事情不是想干就能干的,前提是卡里必须得有钱才行!于
是小楠拿起手机一查发现:余额为¥0。现在她除了干瞪眼,唯一能干的事情也许只有一件:
等。等到她爸妈汇了钱打电话通知她为止。但更进一步,即便是她爸妈汇了钱也打了电话通知了她,此刻她也不能一定保证能取到钱,因为与此同时她的众多兄弟姐妹(统统共用一个银行账号)很可能已经抢先一步将钱悉数取光了!因此当小楠收到爸妈的电话之后,需要再次确认是否有钱,才能取钱。
在以上逻辑中,余额这个变量很显然是一个由很多人共同操作的典型的共享资源,因此
任何人在访问之前都必须加互斥锁,在余额为0的情况下进入某个条件变量等待队列中等待,其他人修改了余额之后