Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#async
群组介绍:
就是发我生活中遇到的比较好用的软件啊,教程啊之类的,部分含有色情内容,慎入哈。几乎每个消息都有Tag,下面会标注一下,其中 #sex 就是包含色情内容。
A
#安卓手机软件#AI#AV#Ayugram#apkcombo#阿里云盘#ASMR
B
#本子#百度网盘#哔哩哔哩#Bandizip#哔咔#比特彗星#bot#bybit
C
#磁力#插件#clash#测速
D
#第三方TG#代理软件#discord#第一版主#电报小tips
E
#Ehentai#emby
F
#flclash#翻墙#flyy
H
#Hanime1#汉化链接#汉化#黑盒闪搜#hd2a#黄油
I
#iwara
G
#规则#隔空投送
J
#机器人#脚本#解压软件#禁忌书屋#禁漫天堂#解压软件#机场#剪映国际版#解压#禁止转发的频道
K
#kemono#夸克网盘#可拓浏览器#k-lite
L
#浏览器#里番#论坛#洛雪
M
#漫画#mod#MMD#music#Meget
N
#nagramX#nhentai#nikke#奈飞#男娘#南+
O
#onlyfans#office
P
#PDF#pikpak#picacomic#pixiv#PerfectViewer#pixez#piliplus
Q
#QQ
S
#神器#sex#搜图机器人#私有频道#绅士漫画#搜狗输入法
T
#TG群#图片查看器#telegram#推特#twitter#tdl#TG小知识#TG大会员#梯子#贴纸
W
#win软件#外挂
X
#小说#X#小火箭#写真
Y
#阅读#油猴脚本#原神#益达#音乐#油管#youtube#游戏#影视
Z
#主题#资源论坛#中文#zachiver#资源管理器#正经漫画
*
#360 #64gram