@asyncio.coroutine def test(i): print('test_1', i) r = yield from asyncio.sleep(1) print('test_2', i)
if __name__ == '__main__': loop = asyncio.get_event_loop() tasks = [test(i) for i in range(3)] loop.run_until_complete(asyncio.wait(tasks)) loop.close()
if __name__ == '__main__': loop = asyncio.get_event_loop() tasks = [test(i) for i in range(3)] loop.run_until_complete(asyncio.wait(tasks)) loop.close()
defconsumer(): print("[CONSUMER] start") r = 'start' whileTrue: n = yield r ifnot n: print("n is empty") continue print("[CONSUMER] Consumer is consuming %s" % n) r = "200 ok"
defproducer(c): # 启动generator start_value = c.send(None) print(start_value) n = 0 while n < 3: n += 1 print("[PRODUCER] Producer is producing %d" % n) r = c.send(n) print('[PRODUCER] Consumer return: %s' % r) # 关闭generator c.close()
# 创建生成器 c = consumer() # 传入generator producer(c)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# 子生成器 deftest(n): i = 0 while i < n: yield i i += 1