Встречается на собеседованиях • сегодня
Как цикл событий узнает что корутина закончила работу в asyncio
В asyncio цикл событий отслеживает завершение корутин через механизм Future. Когда корутина вызывается, она возвращает объект Future, который привязан к Task.
Когда корутина завершает выполнение (либо успешно, либо с исключением), она устанавливает результат или исключение в связанный Future. Цикл событий проверяет состояние Future и, когда оно меняется на "готово", обрабатывает завершение.
Пример:
python
async def my_coro():
await asyncio.sleep(1)
return "Done"
async def main():
task = asyncio.create_task(my_coro())
await task # Здесь Future отмечается как завершенный
print(task.done()) # TrueКлючевые моменты:
- Корутина привязывается к Task, который содержит Future
- При завершении корутина устанавливает результат в Future
- Цикл событий проверяет состояние Future через коллбэки
- Когда Future завершен, цикл уведомляет ожидающие задачи

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы