• 技术文章 >Python技术 >Python基础教程

    python用生成器实现协程

    小妮浅浅小妮浅浅2021-02-24 15:43:53原创1754

    1、方法

    我们通过“生产者-消费者”模型来研究协程的应用。生产者产生消息后直接跳转到消费者开始执行,消费者完成执行后切换回生产者继续生产。

    2、实例

    #-*- coding:utf8 -*-
    def consumer():
        r = ''
        while True:
         n = yield r
         if not n:
             return
         print('[CONSUMER]Consuming %s...' % n)
         r = '200 OK'
     
    def producer(c):
        # 启动生成器
        c.send(None)
        n = 0
        while n < 5:
         n = n + 1
         print('[PRODUCER]Producing %s...' % n)
         r = c.send(n)
         print('[PRODUCER]Consumer return: %s' % r)
        c.close()
     
    if __name__ == '__main__':
        c = consumer()
        producer(c)

    send(msg)和next()的区别在于send可以将参数传递给yield表达式,此时传递的参数作为yield表达式的值,yield的参数返回给调用者的值。

    以上就是python用生成器实现协程的方法,希望能对大家有所帮助,更多知识尽在python学习网。

    专题推荐:python 协程
    品易云
    上一篇:python特征生成中字符类型有哪些? 下一篇:python greenlet如何交替运行

    相关文章推荐

    • python os模块有几种用法?• python单继承和多继承如何定义?• python中dict有哪些删除的方式• python特征生成是什么?• python中二叉树有哪些类型• python特征生成中字符类型有哪些?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网