協程之前我們明白Python的行程和執行緒,這里我們來說一下協程
- 子程式切換不是執行緒切換,而是由程式自身控制
- 沒有執行緒切換的開銷,和多執行緒比,執行緒數量越多,協程的性能優勢就越明顯
- 不需要多執行緒的鎖機制,因為只有一個執行緒,也不存在同時寫變數沖突,在協程中控制共享資源不加鎖
- 協程實作
def custumer():
r = ''
while True:
n = yield r # 接受send的值 返出yield的值
if not n:
return
print('custer {}'.format(n))
r = 'done'
def produce(c):
c.send(None) # 啟動
n = 0
while n < 5:
n += 1
print('custer {}'.format(n))
r = c.send(n)
print('custer return {}'.format(r))
c.close()
c = custumer()
produce(c)
本文首發于python黑洞網,博客園同步更新
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/166992.html
標籤:Python
上一篇:【2020Python修煉記19】Python語法入門—裝飾器
下一篇:在廈門這個水平大概能要多少
