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

    python用生成器实现协程

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

    1、方法

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

    2、实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    #-*- 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学习网