Sobes.tech
Middle

Mi az a create_task() függvény?

sobes.tech MI

Válasz az MI-től

Az asyncio.create_task() függvény létrehoz egy Task objektumot, és ütemezi az aszinkron függvényt (korrutint) a háttérben futó eseményciklusban. Visszaad egy Task objektumot, amit a korrutina eredményének megszerzésére vagy a végrehajtásának leállítására lehet használni.

import asyncio

async def my_coroutine():
    print("Korrutina kezdődött")
    await asyncio.sleep(1)
    print("Korrutina befejeződött")
    return "Kész"

async def main():
    print("Feladat létrehozása")
    task = asyncio.create_task(my_coroutine())
    print("Feladat létrehozva")

    # Más műveletek is végrehajthatók, amíg a feladat fut
    await asyncio.sleep(0.5)
    print("Más műveletek végrehajtása")

    # Várakozás a feladat befejezésére és az eredmény megszerzése
    result = await task
    print(f"Feladat eredménye: {result}")

asyncio.run(main())

Fő jellemzők:

  • Nem blokkoló végrehajtás: Elindítja a korrutint anélkül, hogy várna a befejezésére.
  • Task-et ad vissza: Lehetővé teszi az indított korrutina végrehajtásának kezelését.
  • Ütemezés: Hozzáadja a korrutint az eseményciklushoz végrehajtás céljából.

A await my_coroutine()-tól eltérően:

create_task() await my_coroutine()
Nem blokkolja a végrehajtó szálat Blokkolja a szálat a befejezésig
Task objektumot ad vissza A korrutina eredményét adja vissza
Háttérben való végrehajtás Szekvenciális végrehajtás

Használható több korrutina párhuzamos (aszinkron) végrehajtására.