码迷,mamicode.com
首页 > 其他好文 > 详细

用yield写协程实现生产者消费者

时间:2018-11-25 13:16:14      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:while   随机   消费   def   消费者   生成器   com   bsp   png   

思路:

  yield可以使得函数阻塞,next,和send可以解阻塞,实现数据不竞争的生产者消费者模式

代码:

  import random  #随机数,模拟生产者的制造物

  def eat():    #消费者

    while True:

      item = (yield)

      print("消费了:",item)

    

  def pro(g):    #生产者

    next(g)

    while True:

      item = random.randint(0,99)

      print("生产了:",item)

      g.send(item)

  #调用

  g = eat()    #创建生成器实例

  pro(g)   

  图例:

    技术分享图片

 

   

 

    

用yield写协程实现生产者消费者

标签:while   随机   消费   def   消费者   生成器   com   bsp   png   

原文地址:https://www.cnblogs.com/cxhzy/p/10014925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!