请告诉新手 asyncio 中的 wait 工作原理的细微差别。示例代码。
import asyncio
async def some_task():
print("Задача начата")
await asyncio.sleep(2)
print("Задача завершена")
async def main():
task = asyncio.create_task(some_task())
#await asyncio.sleep(5)
await task
#await asyncio.sleep(5)
asyncio.run(main())
- 如果我只是运行await task,一切都清楚了,任务在2秒内运行
- 如果我在await任务之前设置await asyncio.sleep(5),那么程序的总执行时间是5秒,程序内部的任务是2秒
- 如果我在await任务之后设置await asyncio.sleep(5),那么程序的总执行时间约为7秒,程序内部的任务为2秒
为什么在一种情况下两个任务“并行”执行,而在另一种情况下“顺序”执行?提前致谢。