Проблема с асинхронностью, функции не вызываются одновременно
Я написал программу на python, с использованием asyncio
import asyncio
async def update_heroes_list():
# реализация функции update_heroes_list
pass
async def update_heroes_win_rates():
# реализация функции update_heroes_win_rates
pass
async def update_counters():
# реализация функции update_counters
pass
async def find_pro_players():
# реализация функции find_pro_players
pass
async def find_players_win_rate():
# реализация функции find_players_win_rate
pass
async def main():
tasks = [
update_heroes_list(),
update_heroes_win_rates(),
update_counters(),
find_pro_players(),
find_players_win_rate()
]
await asyncio.gather(*tasks)
if __name__ == "__main__":
asyncio.run(main())
вот примерное описание программы, мне нужно чтобы все 5 функций запускались одновременно, но они запускаются по очереди. Подскажите, что я делаю не так?
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Асинхронность режет асинхронную функцию по слову await
и исполняет кусочки по очереди или ждёт асинхронного доступа (сокета, таймера, файла, пайпа).
Тяжелый синхронный код блокирует исполнение других тасков.