#author F
#单线程下的并行效果 (生成器)
#协程
import time
def consumer(name):
print("%s 准备吃包子啦" %name)
while True:
baozi = yield
print("包子%s来啦 被%s吃啦!" %(baozi, name))
c = consumer("WW") #此时的consumer已经不是函数 他是一个生成器 此时只是初始化了一个生成器
# c.send("[牛肉馅]")
c.__next__() #必须要执行一个next 语句才会走到yield处
c.send("[猪肉馅]") #send语法往生成器中传参
def producer(name):
c = consumer("A")
c2 = consumer("B")
c.__next__()
c2.__next__()
print("老子开始准备做包子了!")
for i in range(1, 11):
time.sleep(1)
print("做了一份包子!俩人分着吃")
c.send(i)
c2.send(i)
producer("F")
Python生成器 单线程协程
最新推荐文章于 2025-03-29 16:56:04 发布
本文通过Python的生成器实现单线程下的并行效果,介绍了如何使用协程进行任务调度,使得在单线程环境中也能实现并发操作。文章通过制作包子的例子展示了如何创建消费者和生产者,并通过yield关键字实现任务间的切换。
989

被折叠的 条评论
为什么被折叠?



