Sobes.tech
Junior — Middle
105

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ą.