主要用于生产者,消费者模型
消费者消费速度大于生产者生产速度例子
<代码>类调度程序: def __init__(自我): 自我。data=https://www.yisu.com/zixun/None 自我。事件=threading.Event () def生产(自我,总): 在范围(总):_ data=random.randint (0100) logging.info(数据) 自我。=数据 self.event.wait (1) self.event.set () def消费(自我): 虽然不是self.event.is_set (): data=self.data logging.info(“收到{}”.format(数据) 自我。data=https://www.yisu.com/zixun/None self.event.wait (0.5) d=调度程序() p=threading.Thread(目标=d。生产,arg游戏=(10),name=爸破恕? c=threading.Thread(目标=d。消费,name=跋颜摺? c.start () p.start () #消费者主动去消费,需要主动去查看下生产者有没有生产数据代码>
使用条件改换成通知机制
生产者生产出数据,通知消费者来消费
<代码>类调度程序: def __init__(自我): 自我。data=https://www.yisu.com/zixun/None 自我。事件=threading.Event () 自我。气孔导度=threading.Condition () def生产(自我,总): 在范围(总):_ data=random.randint (0100) self.cond: logging.info(数据) 自我。=数据 self.cond.notify (2) # self.cond.notify_all () self.event.wait (1) self.event.set () def消费(自我): 虽然不是self.event.is_set (): self.cond: self.cond.wait () data=self.data logging.info(“收到{}”.format(数据) 自我。data=https://www.yisu.com/zixun/None self.event.wait (0.5) d=调度程序() p=threading.Thread(目标=d。生产,arg游戏=(10),name=爸破恕? # c=threading.Thread(目标=d。消费,name=跋颜摺? # c.start () 因为我在范围(5): c=threading.Thread(目标=d。消费,name=跋颜? {}”.format(我)) c.start () p.start() 代码>