首页 > 解决方案 > 为什么 asyncio.sleep() 似乎暂停了使用 create_task() 创建的协程?

问题描述

我有以下使用 python 3.8 解释的代码:

import asyncio

async def stuff(name,time):
    print("starting ",name)
    await asyncio.sleep(time)

    #UNREACHABLE CODE
    print("finished ",name)

async def main():
    loop = asyncio.get_event_loop()
    print("start")
    t1 = loop.create_task(stuff("A",1))
    t2 = loop.create_task(stuff("B",1))
    print("end")
loop = asyncio.get_event_loop()
loop.run_until_complete(main())

我希望输出是:

start
end
starting A
starting B
finished A
finsihed B

但是,我得到:

start
end
starting  A
starting  B

哪里print("finished ",name)似乎是无法访问的代码

标签: pythonasynchronouspython-asyncio

解决方案


推荐阅读