协程
import time
def consumer():
message = ''
while True:
n = yield message # yield 使函数中断
if not n:
return
print '[CONSUMER] Consuming %s...' % n
time.sleep(2)
message = '200 OK'
def produce(c):
c.next() # 启动生成器
n = 0
while n < 5:
n = n + 1
print '[PRODUCER] Producing %s...' % n
r = c.send(n) # 通过 send 切换到 consumer 执行
print '[PRODUCER] Consumer return: %s' % r
c.close()
if __name__ == '__main__':
c = consumer()
produce(c)小结
参考资料
Last updated