Сколько корутин можно сделать одновременно

Python Middle Без компании
Сколько корутин можно сделать одновременно
Ответы
В Python количество одновременно работающих корутин ограничено только доступной оперативной памятью и производительностью системы. В отличие от потоков, корутины не создают настоящих потоков ОС, а работают в рамках одного потока, переключаясь по событийному циклу. На практике можно создавать десятки тысяч корутин. Например: ``` import asyncio async def dummy_task(): await asyncio.sleep(1) async def main(): tasks = [asyncio.create_task(dummy_task()) for _ in range(100_000)] await asyncio.gather(*tasks) asyncio.run(main()) ``` Однако есть нюансы: - Каждая корутина потребляет память (обычно ~1-3KB) - Большое количество активных корутин может замедлить event loop - Ограничения могут накладывать системные вызовы (например, лимиты на открытые файлы) Оптимальное количество зависит от конкретной задачи и доступных ресурсов. Для IO-bound задач обычно эффективны тысячи корутин.