Back to questions
СБЕР Центр ИИ
Junior — Middle
97
Что случится, если в асинхронной функции применить блокирующую задержку time.sleep()?
Companies where asked
Answer from AI
sobes.tech AI
Если в асинхронной функции Python использовать блокирующую задержку time.sleep(), то выполнение всей программы будет приостановлено на время сна, блокируя текущий поток. Это нарушает преимущества асинхронности, так как другие задачи в event loop не смогут выполняться параллельно.
Вместо time.sleep() в асинхронном коде следует использовать await asyncio.sleep(), который не блокирует event loop и позволяет другим корутинам выполняться во время ожидания.
Пример:
import asyncio
import time
async def wrong_sleep():
print('Start')
time.sleep(2) # блокирует весь event loop
print('End')
async def correct_sleep():
print('Start')
await asyncio.sleep(2) # не блокирует event loop
print('End')
asyncio.run(correct_sleep())