Coroutine協(xié)程

與基于鎖的并發(fā)相對(duì);

1.不使用鎖,沒有線程上下文切換開銷;

2.多進(jìn)程+協(xié)程,充分利用多CPU

Python對(duì)協(xié)程的支持是通過generator實(shí)現(xiàn)的。

在generator中,我們不但可以通過for循環(huán)來迭代,還可以不斷調(diào)用next()函數(shù)獲取由yield語句返回的下一個(gè)值。

但是Python的yield不但可以返回一個(gè)值,它還可以接收調(diào)用者發(fā)出的參數(shù)。


def consumer():

r = ''

while True:

n = yield r

if not n:

return

print('[CONSUMER] Consuming %s...' % n)

r = '200 OK'


def produce(c):

c.send(None)

n = 0

while n < 5:

n = n + 1

print('[PRODUCER] Producing %s...' % n)

r = c.send(n)

print('[PRODUCER] Consumer return: %s' % r)

c.close()

c = consumer()

produce(c)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • 窗外聽雨,似夢(mèng)生前彼岸,不忍斷,把酒一杯濃愁欲滴處。 聞梵音故,今世難說兩回顧,求普度,三敲木魚長(zhǎng)發(fā)洛神賦。
    舊雨新夜閱讀 180評(píng)論 5 2
  • 一、170723(第六天)小任務(wù) 今天早晨,松原發(fā)生了4.9級(jí)地震,在我們26樓的家里,明顯的感受到了房屋的劇烈晃...
    艷濱閱讀 471評(píng)論 0 0
  • 給出一個(gè)字符串(假設(shè)長(zhǎng)度最長(zhǎng)為1000),求出它的最長(zhǎng)回文子串,你可以假定只有一個(gè)滿足條件的最長(zhǎng)回文串。 地址如下...
    FENGERMA閱讀 367評(píng)論 0 0
  • 本文作者 胖蛇 圖片 部分來自網(wǎng)絡(luò) HI,我是胖蛇,這2篇推文,我想帶大家去印第安土著部落探秘。 5:20SKY來...
    胖蛇Cher的仙女地閱讀 1,060評(píng)論 0 0

友情鏈接更多精彩內(nèi)容