我是Python asyncio的新手,正在进行一些实验。我有以下代码:
async def say_after(n, s):
await asyncio.sleep(n)
print(s)
async def main():
task1 = asyncio.create_task(say_after(2, 'a'))
task2 = asyncio.create_task(say_after(1, 'b'))
await task1
print('x', flush=True)
await task2
print('y', flush=True)
asyncio.run(main())
输出结果为:
b
a
x
y
我不明白这里的顺序,请有人帮忙解释一下吗?特别是为什么x在b和a之后?
x
和y
。如果您等待任务完成,输出结果将是:x y b a
。 - Łukasz Kwieciński