Middle — Middle+
Hogyan valósul meg az aszinkron feladatvégrehajtás és kezelés magasabb fejlesztési szinteken?
sobes.tech MI
Válasz az MI-től
Pythonban a magas szintű feladatok aszinkron végrehajtása általában az asyncio modul segítségével valósul meg. Ez egy eseményhurkot (event loop) biztosít, amely kezeli a korutinok — speciális függvények, amelyek végrehajtását szüneteltethetik — futását.
Fő elemek:
- async def — egy korutina deklarálása.
- await — a korutina szüneteltetése egy aszinkron művelet befejezéséig.
- asyncio.create_task() — feladat létrehozása és ütemezése párhuzamos végrehajtásra.
- asyncio.gather() — több feladat futtatása és azok befejezésének várása.
Példa:
import asyncio
async def task(name, delay):
print(f"Feladat {name} kezdődött")
await asyncio.sleep(delay)
print(f"Feladat {name} befejeződött")
async def main():
tasks = [asyncio.create_task(task(f"{i}", i)) for i in range(1, 4)]
await asyncio.gather(*tasks)
asyncio.run(main())
Így az asyncio hatékonyan kezeli a sok aszinkron feladatot anélkül, hogy blokkolná a fő szálat, ami különösen hasznos bemenet/kimenet és hálózati műveleteknél.