Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

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

Что произойдет, если использовать time.sleep() внутри async-функции?

Вопрос проверяет понимание асинхронной модели исполнения и различий между блокирующими и неблокирующими операциями.

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

time.sleep() блокирует поток выполнения, даже если он вызван внутри async-функции. Это приводит к блокировке всего event loop. Другие корутины перестают выполняться на время сна. Такое поведение ломает асинхронность. Вместо этого следует использовать asyncio.sleep().

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

Асинхронный код требует строгого соблюдения неблокирующей модели.

Определение

time.sleep() — это блокирующая операция, останавливающая текущий поток.
asyncio.sleep() — неблокирующая пауза, которая освобождает event loop.

Что происходит при ошибочном использовании

Рассмотрим ключевые последствия:

  1. Блокировка event loop

    • другие корутины не выполняются

    • таймеры и I/O не обрабатываются

  2. Потеря преимуществ async

    • код становится последовательным

    • растёт latency

  3. Трудная диагностика

    • внешне код выглядит корректным

    • проблема проявляется только под нагрузкой

Пример ошибки

async def handler():
    time.sleep(2)  # блокирует event loop
    return "ok"

Корректный вариант

import asyncio

async def handler():
    await asyncio.sleep(2)
    return "ok"

Почему это критично

В асинхронных фреймворках (FastAPI, aiohttp):

  • один event loop обслуживает тысячи запросов

  • одна блокировка замораживает всех клиентов

Вывод

Использование time.sleep() внутри async-функций — критическая ошибка. В асинхронном коде допустимы только неблокирующие операции.

  • Аватар

    Python Guru

    Sergey Filichkin

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Python

    Python

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

#asyncio

#event

#loop

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

  • Аватар

    Python Guru

    Sergey Filichkin

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