Встречается на собеседованиях • сегодня

Какое количество Event Loop может быть в одном Python потоке

В одном Python потоке может быть только один работающий Event Loop. Он управляет асинхронными операциями и координирует выполнение корутин.

python
import asyncio

async def main():
    print("Running in event loop")

loop = asyncio.new_event_loop()  # Создаем новый event loop
asyncio.set_event_loop(loop)     # Устанавливаем его как текущий
loop.run_until_complete(main())  # Запускаем
loop.close()                     # Закрываем

Хотя технически можно создать несколько экземпляров asyncio.AbstractEventLoop, одновременно активным может быть только один. Попытка запустить второй loop в том же потоке приведет к ошибке RuntimeError.

Для параллельного выполнения асинхронного кода лучше использовать asyncio.gather() или несколько потоков с отдельными event loop'ами.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы