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

Posted Rocinante

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统OS,Python - 协程(Coroutine)相关的知识,希望对你有一定的参考价值。

留坑

例子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)的主要内容,如果未能解决你的问题,请参考以下文章

python进程|线程|协程

一句话介绍python线程进程和协程

asyncio创建协程解析——分析廖雪峰的Python教程之创建WEB服务(转)

python协程函数的应用

python_day10 多线程 协程 IO模型

python—day32 异步 + 回调 Eventgevent 协程单线程下实现遇到IO切换