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.