Hogyan történik a coroutine integrálása a fő eseménykezelő ciklussal?
sobes.tech MI
Válasz az MI-től
Pythonban a korutinok beépülnek a fő eseményhurokba (event loop), amely kezeli azok végrehajtását és közötti váltásukat. A fő hurok elindítja a korutinokat, szünetelteti őket aszinkron műveletek (pl. bemenet-kimenet) várakozásakor, és folytatja őket, amikor a művelet befejeződik.
Például az asyncio-ban az eseményhurok futtat egy korutint, amely használhatja a await-et más aszinkron művelet eredményének várására. Várakozás közben az eseményhurok más feladatokra vált, biztosítva a források hatékony kihasználását.
Példa:
import asyncio
async def say_hello():
print("Szia")
await asyncio.sleep(1) # 1 másodpercre szünetelteti a korutint
print("Viszlát")
asyncio.run(say_hello())
Itt az asyncio.run elindítja az eseményhurkot, amely kezeli a say_hello korutint. Amikor eléri a await asyncio.sleep(1)-et, a korutint szünetelteti, és az eseményhurok más feladatokat is végrehajthat, ha vannak.