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

Как Event Loop связан с корутиными в asyncio

Event Loop в asyncio — это механизм, который управляет выполнением корутин. Он планирует их выполнение, переключает контекст между ними и обрабатывает события ввода-вывода.

Корутины — это функции, объявленные через async def. Они могут приостанавливать выполнение с помощью await, передавая управление обратно в Event Loop. Event Loop решает, какую корутину запустить дальше, основываясь на готовности операций (например, завершении I/O).

Пример:

python
import asyncio

async def task():
    print("Start")
    await asyncio.sleep(1)  # Передаёт управление Event Loop
    print("End")

async def main():
    await asyncio.gather(task(), task())  # Event Loop управляет двумя корутинами

asyncio.run(main())  # Запускает Event Loop

Event Loop обеспечивает конкурентность, но не параллелизм (если не используются потоки/процессы).

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

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

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

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