模擬python中的Yield偽併發

2022-10-11 02:42:11 字數 822 閱讀 2834

併發,在作業系統中,是指乙個時間段中有幾個程式都處於已啟動執行到執行完畢之間,且這幾個程式都是在同乙個處理機上執行,但任乙個時刻點上只有乙個程式在處理機上執行。

#yield偽併發

_author_='

lanyinhao

'import

time

defconsumer(name):

print("

%s準備吃包子啦!

"%name)

while

true:

baozi=yield

print("

包子[%s]來了,被[%s]吃了!

"%(baozi,name))

defproducer(name):

c=consumer("

lanyinhao1")

c2=consumer("

lanliuchen")

#c.__next__()#到這一步才開始第一次列印,因為是生成器需要next呼叫,如果第一次沒有next,物件不懂賦值給哪個會報錯

#c2.__next__()

next(c)#等價於c2.__next__

next(c2)

print("

老子開始準備做包子啦")

for i in range(3):

time.sleep(1)

print("

做了兩個包子")

c.send(i)

#直接·跳入yield中執行

c2.send(i)

producer(

"lanyinhao

")

關於Python中的yield

在介紹yield前有必要先說明下python中的迭代器 iterator 和生成器 constructor 一 迭代器 iterator 在python中,for迴圈可以用於python中的任何型別,包括列表 元祖等等,實際上,for迴圈可用於任何 可迭代物件 這其實就是迭代器 迭代器是乙個實現了迭...

關於Python中的yield

在介紹yield前有必要先說明下python中的迭代器 iterator 和生成器 constructor 一 迭代器 iterator 在python中,for迴圈可以用於python中的任何型別,包括列表 元祖等等,實際上,for迴圈可用於任何 可迭代物件 這其實就是迭代器 迭代器是乙個實現了迭...

Python中的yield用法

在python中,我們將帶有 yield 的函式稱之為 generator 生成器 generator可以一邊迴圈一邊計算,是可迭代物件,也就是說可以使用for迴圈來迭代出generator的各個值。一般為了說明generator,都會使用斐波那契數列來舉例,這裡也不例外 如結果所示,呼叫 fab ...