Sobes.tech
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.