python用生成器實(shí)現(xiàn)協(xié)程
1、方法
我們通過“生產(chǎn)者-消費(fèi)者”模型來研究協(xié)程的應(yīng)用。生產(chǎn)者產(chǎn)生消息后直接跳轉(zhuǎn)到消費(fèi)者開始執(zhí)行,消費(fèi)者完成執(zhí)行后切換回生產(chǎn)者繼續(xù)生產(chǎn)。
2、實(shí)例
#-*-coding:utf8-*-
defconsumer():
r=''
whileTrue:
n=yieldr
ifnotn:
return
print('[CONSUMER]Consuming%s...'%n)
r='200OK'
defproducer(c):
#啟動(dòng)生成器
c.send(None)
n=0
whilen<5:
n=n+1
print('[PRODUCER]Producing%s...'%n)
r=c.send(n)
print('[PRODUCER]Consumerreturn:%s'%r)
c.close()
if__name__=='__main__':
c=consumer()
producer(c)
send(msg)和next()的區(qū)別在于send可以將參數(shù)傳遞給yield表達(dá)式,此時(shí)傳遞的參數(shù)作為yield表達(dá)式的值,yield的參數(shù)返回給調(diào)用者的值。
以上就是python用生成器實(shí)現(xiàn)協(xié)程的方法,希望能對(duì)大家有所幫助,更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。