Paaiškinkite korutinų veikimo principą ir kaip jos valdomos vykdymo metu.
Atsakymas iš AI
sobes.tech AI
Korutinės funkcijos yra tokios, kurios gali laikinai sustabdyti savo vykdymą ir vėliau jį atnaujinti, išsaugodamos savo būseną. Python kalboje korutinės funkcijos įgyvendinamos naudojant raktinį žodį async def ir valdomos per įvykių ciklą (event loop).
Vykdymo metu korutina gali "laukti" (await) asinchroninės operacijos pabaigos, tuo pačiu metu perduodama kontrolę kitoms užduotims. Tai leidžia efektyviai dirbti su įvesties/išvesties operacijomis be blokuojant siūlą.
Paprastos korutinės funkcijos pavyzdys:
import asyncio
async def say_hello():
print("Labas")
await asyncio.sleep(1) # sustabdo korutiną 1 sekundę
print("Pasaulis")
asyncio.run(say_hello())
Čia await perduoda kontrolę į įvykių ciklą, kuris gali keistis tarp kitų korutinų, užtikrinant asinchroniškumą.
Taip korutinės funkcijos leidžia rašyti asinchroninį kodą, panašų į sinchroninį, ir supaprastina paralelinių užduočių valdymą.