用生成器做偽併發

2022-08-18 02:30:12 字數 1157 閱讀 5945

#_author:administrator

#date:2019/11/4

import time

def consumer(name):

print('%s 開始吃包子啦'%name)

while true:

baizi=yield

print('包子[%s]來了,被[%s]吃了'%(baizi,name))

def producer(name):

c1=consumer('a')

c2=consumer('b')

next(c1)

next(c2)

print('yuwei開始做包子啦')

for i in range(10):

time.sleep(1)

print('做了兩個包子')

c1.send(i)

c2.send(i)

producer('yuwei')

#生成器都是迭代器,迭代器不一定是生成器

output:

a 開始吃包子啦

b 開始吃包子啦

yuwei開始做包子啦

做了兩個包子

包子[0]來了,被[a]吃了

包子[0]來了,被[b]吃了

做了兩個包子

包子[1]來了,被[a]吃了

包子[1]來了,被[b]吃了

做了兩個包子

包子[2]來了,被[a]吃了

包子[2]來了,被[b]吃了

做了兩個包子

包子[3]來了,被[a]吃了

包子[3]來了,被[b]吃了

做了兩個包子

包子[4]來了,被[a]吃了

包子[4]來了,被[b]吃了

做了兩個包子

包子[5]來了,被[a]吃了

包子[5]來了,被[b]吃了

做了兩個包子

包子[6]來了,被[a]吃了

包子[6]來了,被[b]吃了

做了兩個包子

包子[7]來了,被[a]吃了

包子[7]來了,被[b]吃了

做了兩個包子

包子[8]來了,被[a]吃了

包子[8]來了,被[b]吃了

做了兩個包子

包子[9]來了,被[a]吃了

包子[9]來了,被[b]吃了

Python語言 生成器函式併發

import time def consumer name print name,開始吃包子啦!while true food yield 出入口 print name,吃了 food,end def producer c1 consumer 劉玄 c2 consumer 劉處玄 c1.next c...

python 生成器作用 Python生成器

生成器介紹 在函式內部包含yield關鍵字,那麼該函式執行的結果是生成器,生成器就是迭代器。生成器的功能 把函式結果做成迭代器 以一種優雅的方式封裝好iter,next 提供了一種自己定義迭代器的方式。使用生成器建立乙個迭代器 def a print a yield 11 使用yield,執行後返回...

python生成器好處 Python生成器筆記

python中三大器有迭代器,生成器,裝飾器,本文主要講述生成器。主要從生成器的概念,本質,以及yield關鍵字的使用執行過程。本質 生成器是一類特殊的迭代器,使用了yield關鍵字的函式不再是函式,而是生成器。使用了yield的函式就是生成器 1.yield關鍵字有兩點作用 1.1 yield語句...