Junior — Middle
120
Ce se întâmplă dacă într-o funcție asincronă se aplică o întârziere blocantă cu time.sleep()?
Companiile au fost întrebate
Răspuns de la 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())