小编F.E*_*F.E的帖子

python asyncios create_task 和 await 函数

我试图了解 pythons asynico 模块并在https://docs.python.org/3/library/asyncio-task.html#asyncio.create_task 上遇到了以下代码

import time
import asyncio

async def say_after(delay, what):
    await asyncio.sleep(delay)
    print(what)

async def main():
    task1 = asyncio.create_task(
        say_after(1, 'hello'))

    task2 = asyncio.create_task(
        say_after(2, 'world'))

    print('started at', time.strftime('%X'))

    # Wait until both tasks are completed (should take
    # around 2 seconds.)
    await task1
    await task2

    print('finished at', time.strftime('%X'))

asyncio.run(main())
Run Code Online (Sandbox Code Playgroud)

事实证明, await task2, (或task1,但不是两者)可以简单地删除,并且代码似乎完全相同。我觉得这很违反直觉,这里发生了什么?感谢您的时间。

python asynchronous

6
推荐指数
1
解决办法
1495
查看次数

标签 统计

asynchronous ×1

python ×1