Junior — Middle
126
Šta će se desiti ako u asinhronoj funkciji primenite blokirajuće kašnjenje sa time.sleep()?
Компаније где су питане
Одговор од АИ
sobes.tech АИ
Если в асинхронной функции 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())