Middle
Čo je funkcia create_task()?
sobes.tech AI
Odpoveď od AI
Funkcia asyncio.create_task() vytvára objekt Task a plánuje asynchrónnu funkciu (koreutínu) na vykonanie v slučke udalostí na pozadí. Vráti objekt Task, ktorý možno použiť na získanie výsledku koreutíny alebo na jej zrušenie.
import asyncio
async def my_coroutine():
print("Koreutína začala")
await asyncio.sleep(1)
print("Koreutína skončila")
return "Hotovo"
async def main():
print("Vytváranie úlohy")
task = asyncio.create_task(my_coroutine())
print("Úloha vytvorená")
# Môžu sa vykonávať iné operácie, zatiaľ čo úloha beží
await asyncio.sleep(0.5)
print("Iné operácie sa vykonávajú")
# Čakanie na dokončenie úlohy a získanie výsledku
result = await task
print(f"Výsledok úlohy: {result}")
asyncio.run(main())
Hlavné vlastnosti:
- Neblokujúce vykonávanie: Spúšťa koreutinu bez čakania na jej dokončenie.
- Vráti
Task: Umožňuje riadiť vykonávanie spustenej koreutíny. - Plánovanie: Pridáva koreutinu do slučky udalostí na vykonanie.
Rozdiel od await my_coroutine():
create_task() |
await my_coroutine() |
|---|---|
| Neblokuje vlákno vykonávania | Blokuje vlákno do dokončenia |
Vráti objekt Task |
Vráti výsledok koreutíny |
| Umožňuje bežať na pozadí | Sekvenčné vykonávanie |
Používa sa na paralelné (asynchrónne) vykonávanie viacerých koreutín.