import asyncio
async def a(t):
print('-->', t)
await asyncio.sleep(0.5)
print('<--', t)
return t * 10
def main():
futs = [a(t) for t in range(6)]
# a(t)函数是一个异步函数,协程对象,所以这里打印出来的futs列表是一堆协程对象
print(futs)
# gather这里要用*futs拆包
ret = asyncio.gather(*futs)
# 这里的ret还没有被真正执行所以打印出来是pending
print(ret)
loop = asyncio.get_event_loop()
ret1 = loop.run_until_complete(ret)
# 这里ret已经执行完了,所以打印出来是finished result
print(ret)
print(ret1)
main()
网友评论