python - 为什么 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)
似乎是无法访问的代码
解决方案
推荐阅读
- python - Python函数没有根据数据框中的数字返回匹配的行
- gnuplot - Gnuplot 和非结构化数据是可能的
- c - 是否可以创建一个用户输入数字金字塔,其中金字塔仅显示 0 - 9?
- django - 带有 '%' 符号的字段名称上的 Django .values():“ValueError:索引 83 处不支持的格式字符 '_' (0x5f)”
- javascript - Javascript:仅样式第一类元素
- android - 使用绑定适配器进行验证
- visual-studio - Visual Studio 执行单元测试时“文件被锁定”
- c++ - 如何用移动语义解决这个问题
- java - 如何使用从 JavaFX 中的另一个控制器发送的整数而不会收到 NumberFormatException?
- itfoxtec-identity-saml2 - 使用 ITfoxtec SAML 2.0 在 Azure 中配置 SAML 单点登录