美文网首页数学教育
ArtOfMP--生产者-消费者问题

ArtOfMP--生产者-消费者问题

作者: 橡树人 | 来源:发表于2018-11-06 08:12 被阅读0次

    生产者-消费者问题

    问题描述
    最终,Alice和Bob相爱了,然后结婚了。
    最终,他们离婚了。
    法院判决Alice拥有宠物,Bob喂养宠物。
    现在,两只宠物相处和谐,但是它们支持Alice,每次见到Bob就攻击他。

    在保证Bob和宠物们不同时在院子里的前提下,如何投放食物?
    要求:
    (1)除非院子里有食物,否则Alice不会把宠物放到院子里;
    (2)除非宠物吃光了院子里的食物,离开院子回到Alice家里了,否则Bob不会进入院子投放食物;

    方案一:can-string协议
    首先,Bob在Alice的窗户边上放一个直立的易拉罐,在易拉罐的周围系上绳子,一端连着易拉罐,另一端放在自己的卧室里。

    然后,Bob进入院子,投放完食物,拉倒易拉罐。

    当Alice想释放宠物到院子里时,她会:

    1. 她等待着直到易拉罐处于倒下的状态;
    2. 她释放宠物到院子里;
    3. 当宠物回来时,Alice检查下食物有没有吃完。如果吃完了,她就重置易拉罐的状态为直立;

    当Bob要进入院子时,他会:

    1. 他等待着直到易拉罐处于直立状态;
    2. 他到院子里投放食物;
    3. 他拉绳子将易拉罐置于倒下的状态;

    性质1:满足互斥性
    性质2:无饿死
    性质3:生产者-消费者
    性质4:会出现等待,比如当Bob投放完食物就去度假了,忘记将易拉罐置为倒下的状态,则此时易拉罐就会一直处于直立状态,则Alice就一直等待;

    分析:

    易拉罐的状态反映了院子的状态:如果易拉罐处于倒下的状态,则说明院子里有食物,宠物们在院子里吃食物;如果易拉罐处于直立的状态,则说明院子里的食物被吃完了,宠物也不在院子里,回到Alice家里了;

    应用
    在并行和分布式系统中很常见,比如生产者-处理器将数据放入通信buffer中,消费者-从通信buffer中读取数据等。

    相关文章

      网友评论

        本文标题:ArtOfMP--生产者-消费者问题

        本文链接:https://www.haomeiwen.com/subject/vrdyxqtx.html