协程
# 协程
# 简单理解
## 消费者
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)
- 整个过程只有一个进程,只有
produce
和consumer
协作完成 c.send(None)
, 开始协程n = yield r
, 可以接收返回值,这个返回值n
来自r = c.send(n)
,r
,来自于r = '200 ok'
- 建议 debug 一下,效果会清楚很多