Junior — Middle
131
Mi történik, ha egy aszinkron függvényben alkalmazzuk a blokkoló késleltetést a time.sleep() segítségével?
Cégeket kérdeztek
Válasz az MI-től
sobes.tech MI
Если в асинхронной функции 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())