首页 > 代码库 > Python生成器:单线程协程

Python生成器:单线程协程

 1 #author F
 2 
 3 #单线程下的并行效果 (生成器)
 4 #协程
 5 
 6 import time
 7 def consumer(name):
 8     print("%s 准备吃包子啦" %name)
 9     while True:
10         baozi = yield
11         print("包子%s来啦 被%s吃啦!" %(baozi, name))
12 
13 c = consumer("WW")  #此时的consumer已经不是函数 他是一个生成器 此时只是初始化了一个生成器
14 # c.send("[牛肉馅]")
15 c.__next__()  #必须要执行一个next 语句才会走到yield处
16 c.send("[猪肉馅]")  #send语法往生成器中传参
17 
18 def producer(name):
19     c = consumer("A")
20     c2 = consumer("B")
21     c.__next__()
22     c2.__next__()
23     print("老子开始准备做包子了!")
24     for i in range(1, 11):
25         time.sleep(1)
26         print("做了一份包子!俩人分着吃")
27         c.send(i)
28         c2.send(i)
29 
30 producer("F")

 

Python生成器:单线程协程