Три способа выполнить множество задач с 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
Oʻzbek tilida matn yozishni ham davri oʻtdi
— Sababi xalqaro bozorda ham oʻzbek tili boʻyicha rivojlanishlar amalga oshirmoqda. Masalan, Gboard klaviatura dasturida oʻzbek tilidagi audioni matn qilib yozib berish qoʻshilibdi. Bu ancha oldin ishga tushgan menimcha, ahamiyat bermagan ekanman. Bugun test qilib koʻrsam juda yaxshi ishlayapti va foydali dastur. Albatta, biroz kamchiliklar bor...
P.s. 2 soatlik audio yuboradigan kishilarni audiosini eshitib, uxlab qolmaysiz endi, bu texnologiyadan foydalansa agar)
@suxrobblog — #foydali#gboard
#Gboard#rafareborn
模块:eu.hxreborn.gboardmaterialexpressiveblack
简介:Gboard Material Expressive Black
版本:200-2.0.0
更新时间:2026/03/18 03:27:08
更新日志:
💥 BREAKING CHANGES
due to 103d427 - migrate to libxposed API 101 (PR #1 by @hxreborn):
migrate to libxposed API 101 (#1)
✨ New Features
103d427 - migrate to libxposed API 101 (PR #1 by @hxreborn)
🐛 Bug Fixes
88820e6 - update release workflow f
@lsposed_Modules_Updates_Trackers | @lsposed_Geeks_Bot