码迷,mamicode.com
首页 > 编程语言 > 详细

操作系统OS,Python - 协程(Coroutine)

时间:2018-04-25 10:18:27      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:start   def   系统   模型   star   generator   int   producer   com   

留坑

例子1. 用协程实现生产者,消费者模型

  1. Python对协程的支持是通过generator实现的。
  2. 参考:https://blog.csdn.net/pfm685757/article/details/49924099
  3. 参考:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432090171191d05dae6e129940518d1d6cf6eeaaa969000
"""
    1. 用协程实现消费者生产者模型
    2. Python对协程的支持是通过generator实现的
    3. 有yield的话,就是generator
"""

def consumer():
    r = ‘‘
    while True:
        # n为send过来的值
        # yield类似于断点,有两个作用。
        # 1. 生成值
        # 2. 在这里断点,交出控制权。
        n = yield r
        if not n:
            return
        print(‘[CONSUMER] Consuming %s...‘ % n)
        r = ‘200 OK‘

def produce(c): 
    #start generator with None
    c.send(None)
    n = 0
    while n < 5:
        n = n + 1
        print(‘[PRODUCER] Producing %s...‘ % n)
        #启动生成器,并附带一个值,r接收yield生成的值
        r = c.send(n)
        print(‘[PRODUCER] Consumer return: %s % r)
    c.close()

c = consumer()

produce(c)

操作系统OS,Python - 协程(Coroutine)

标签:start   def   系统   模型   star   generator   int   producer   com   

原文地址:https://www.cnblogs.com/allen2333/p/8940060.html

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