Sobes.tech
Junior — Middle

Vysvětlete princip fungování korutin a jak jsou během provádění řízeny.

sobes.tech AI

Odpověď od AI

Korutiny jsou funkce, které mohou pozastavit svůj běh a později jej znovu obnovit, přičemž si zachovávají svůj stav. V Pythonu jsou korutiny implementovány pomocí klíčového slova async def a jsou řízeny pomocí událostní smyčky (event loop).

Během provádění může korutina "čekat" (await) na dokončení asynchronní operace, čímž uvolní řízení jiným úkolům. To umožňuje efektivní práci s operacemi vstupu/výstupu bez blokování vlákna.

Příklad jednoduché korutiny:

import asyncio

async def say_hello():
    print("Ahoj")
    await asyncio.sleep(1)  # pozastaví korutinu na 1 sekundu
    print("Svět")

asyncio.run(say_hello())

Zde await předává řízení událostní smyčce, která může přepínat mezi jinými korutinami, zajišťujíc asynchronnost.

Tímto způsobem korutiny umožňují psaní asynchronního kódu podobného synchronnímu, zjednodušují správu paralelních úkolů.