python中协程

本文深入探讨了Python中协程的概念,通过实例解析了生成器(generator)的工作原理,包括yield关键字的用法,以及如何使用send方法与生成器进行交互。文章还介绍了如何创建和控制消费者与生产者模式下的协程。
部署运行你感兴趣的模型镜像

协程

生产器. yield
协程: 相当于 可被中断执行的函数. 可以中断地去执行不同的任务. 只是一个线程.

"""
   generator 解释.
   send为生成器的一种方法, 参数指定了上一次yield语句挂起时的返回值, 所以yield应该先挂起再调用send即先使用next().
   当然也可以send(None), 这样就不用先使用next(), 毕竟send指定的返回值为none.

"""


def consumer():
    r = ''
    while True:
        n = yield r
        print(n)
        if not n:
            return
        print("Consumer {}....".format(n))
        r = "OK"


def producer(c):
    c.send(None)  # 启动生成器, 运行到yield. 这里也可以使用next()来启动生产器, 但是逻辑问题需要我们返回None给n.
    n = 0
    while n < 5:
        n += 1
        r = c.send(n)   # 运行到yield, 发送过去的是返回值
        print("Consumer return {}".format(r))
    c.close()  # close为生成器的一种方法. 关闭generator.


c = consumer()  # 将generator传给c 不是调用.
producer(c)

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值