python - 如何使用 Python async/await 同时运行两个任务?
问题描述
代码:
import asyncio
async def f1():
print('f1:1')
await asyncio.sleep(2)
print('f1:2')
async def f2():
print('f2:1')
await asyncio.sleep(2)
print('f2:2')
async def f():
await f1()
await f2()
asyncio.run(f())
结果:
f1:1
f1:2
f2:1
f2:2
我期望的是同时运行f1
,f2
结果是:
f1:1
f2:1
f1:2
f2:2
那么有人可以给我一些建议吗?
解决方案
使用收集():
import asyncio
async def f1():
print('f1:1')
await asyncio.sleep(2)
print('f1:2')
async def f2():
print('f2:1')
await asyncio.sleep(2)
print('f2:2')
async def f():
await asyncio.gather(f1(), f2())
asyncio.run(f())
推荐阅读
- bottom-sheet - 防止底片覆盖底部应用栏
- mysql - 遇到错误 sql_mode=only_full_group_by 那么如何获得我需要的结果
- javascript - 如何将 fillStyle 添加到 Path2D?JS 画布
- python-2.7 - Squish 6.2 中未定义全局名称 waitForImage/findImage 错误
- bash - Bash 脚本无法写入日志文件
- java - openjdk-8-jre-headless:中断:ca-certificates-java (< 20160321~)
- angular - Angular FormArray 模板值未绑定到 Typescript
- rust - Rust 函数返回通用特征
- arrays - 从嵌套数组中检索数据
- javascript - 有没有办法使用 Javascript 代码自动切换浏览器字体设置?