Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: asyncio, coroutine, event loop

Корутины и event loop.

Вопрос проверяет понимание асинхронного программирования, корутин и работы цикла событий.

Короткий ответ

Корутины — это специальные функции, которые могут приостанавливать выполнение и возобновлять его. Event loop управляет выполнением корутин, переключаясь между ними при ожидании операций ввода-вывода.

Длинный ответ

Асинхронное программирование в Python построено на корутинах и цикле событий, которые позволяют эффективно обрабатывать множество операций в одном потоке.

Корутины:

  • Объявляются с async def

  • Могут приостанавливаться с await

  • Возвращают управление event loop при ожидании

Event Loop:

  • Управляет выполнением корутин

  • Мониторит готовность операций ввода-вывода

  • Переключается между готовыми к выполнению корутинами

Пример работы:

import asyncio

async def task1():
    print("Начало task1")
    await asyncio.sleep(1)  # Приостановка на 1 секунду
    print("Конец task1")

async def task2():
    print("Начало task2")
    await asyncio.sleep(0.5)  # Приостановка на 0.5 секунды
    print("Конец task2")

async def main():
    # Запуск корутин параллельно
    await asyncio.gather(task1(), task2())

# Запуск event loop
asyncio.run(main())

Принцип работы:

  1. Event loop запускает корутины

  2. При встрече await корутина приостанавливается

  3. Event loop переключается на другие готовые корутины

  4. Когда операция завершается, корутина возобновляется

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    8

Навыки

  • Python

    Python

Ключевые слова

#asyncio

#coroutine

#event loop

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.