Почему не стоит в event loop много задач

Python Middle Без компании
Почему не стоит в event loop много задач
Ответы
Добавление слишком большого количества задач в event loop может привести к нескольким проблемам: - **Перегрузка памяти** – каждая задача потребляет память, и при большом их количестве возможны утечки или OOM-ошибки. - **Блокировка event loop** – если задачи выполняют CPU-bound операции или блокирующие вызовы, event loop не сможет эффективно переключаться между задачами. - **Увеличение latency** – задачи будут дольше ждать своей очереди на выполнение, что скажется на отзывчивости приложения. Пример плохой практики: ``` import asyncio async def cpu_bound_task(): # Долгая CPU-bound операция sum(i * i for i in range(10**6)) async def main(): tasks = [cpu_bound_task() for _ in range(10_000)] await asyncio.gather(*tasks) # Перегрузка event loop asyncio.run(main()) ``` Решение – ограничивать количество одновременных задач, использовать `asyncio.Semaphore` или выносить CPU-bound задачи в отдельные потоки через `loop.run_in_executor()`.