協程之前我們明白Python的進程和線程,這裡我們來說一下協程
- 子程序切換不是線程切換,而是由程序自身控制
- 沒有線程切換的開銷,和多線程比,線程數量越多,協程的性能優勢就越明顯
- 不需要多線程的鎖機制,因為只有一個線程,也不存在同時寫變量衝突,在協程中控制共享資源不加鎖
- 協程實現
<code>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)/<code>
閱讀更多 程序員亮哥 的文章