python之協程函式
什麼是協程函式:如果乙個函式內部yield的使用方法是表示式形式的話,如x=yield,那麼該函式成為協程函式。
defeater(name):
print('
%s start to eat food
' %name)
food_list=
while
true:
food=yield
food_list
print('
%s get %s ,to start eat
' %(name,food))
print('
done')
e=eater('鋼蛋'
)#print(e)
(next(e))
print(e.send('奧爾良烤翅'))
print(e.send('香辣雞腿堡'))
print(e.send('奧爾良堡
'))
e.send 和 next(e) 的區別:
1. 如果函式內yield是表示式形式,那麼必須是先next(e)
2. 二者的共同之處是都是可以讓函式在上次暫停的位置繼續執行,不一樣的地方在於send在觸發下一次**的執行時,會順利給yield傳乙個值。
為協程函式新增初始化裝飾器:
defdef inner(*args,**kwargs):
res = func(*args,**kwargs)
next(res)
return
res
return
inner
defeater(name):
print('
%s start to eat food
' %name)
food_list=
while
true:
food=yield
food_list
print('
%s get %s ,to start eat
' %(name,food))
print('
done')
e=eater('鋼蛋'
)#print(e)
(next(e))
print(e.send('
奧爾良烤翅'))
print(e.send('
香辣雞腿堡'))
print(e.send('
奧爾良堡
'))
python協程函式
例項 def menu x print welcome s to shaxian restaurant x men list while true print men list food yield men list print s start to eat s x,food g menu 張三 n...
Python之協程技術
1.定義 纖程,微執行緒。是允許在不同入口點不同位置暫停或開始的電腦程式,簡單來說,協程就是可以暫停執行的函式。2.協程原理 記錄乙個函式的上下文,協程排程切換時會將記錄的上下文儲存,在切換回來時進行調取,恢復原有的執行內容,以便從上一次執行位置繼續執行。協程本質上就是乙個執行緒,以前多執行緒任務的...
python之協程建立
協程,是充分利用cpu給該執行緒的時間,在乙個執行緒裡放置多個任務,當某個任務阻塞時就執行下乙個任務。其特點是能夠記住這些任務執行到哪一步了,下次再執行該任務的時候回從上次阻塞的地方繼續開始。建立協程需要使用gevent模組。如下 import gevent gevent協程中,遇到需要耗費時間的操...