知行编程网知行编程网  2022-12-17 00:00 知行编程网 隐藏边栏  3 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python用生成器实现协程的相关知识,希望可以帮到处于编程学习途中的小伙伴

Python 使用生成器实现协程


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用generators实现协程的方法。希望对大家有所帮助。更多知识可上python学习网。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享