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