1. 程式人生 > >Python生成器:單線程協程

Python生成器:單線程協程

color 一份 才會 imp author 一個 range next 執行

 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生成器:單線程協程