Wei*_*ker 5 python python-asyncio
我是 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())
Run Code Online (Sandbox Code Playgroud)
和输出:
b
a
x
y
Run Code Online (Sandbox Code Playgroud)
我不明白这里的顺序。有人可以帮忙解释一下吗?特别是为什么x出现在b和a之后?
特别是为什么x出现在b和a之后?
btask2开始后约1秒后打印main,开始后约2秒后a打印。等待,因此等待大约 2 秒。因此,到完成时, 和都会被打印出来。task1mainawait task1task1await task1ba
(上面的“关于”是故意的......会有变化,但在大多数情况下,它们会很小)
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |