Sobes.tech
Junior — Middle

Wyjaśnij zasadę działania korutyn i jak są one zarządzane podczas wykonywania.

sobes.tech AI

Odpowiedź od AI

Korutyny to funkcje, które mogą wstrzymywać swoje wykonanie i później je wznawiać, zachowując swój stan. W Pythonie korutyny są implementowane za pomocą słowa kluczowego async def i są zarządzane przez pętlę zdarzeń (event loop).

Podczas wykonywania korutyna może "czekać" (await) na zakończenie operacji asynchronicznej, zwalniając kontrolę innym zadaniom. Pozwala to na efektywną pracę z operacjami wejścia/wyjścia bez blokowania wątku.

Przykład prostej korutyny:

import asyncio

async def say_hello():
    print("Cześć")
    await asyncio.sleep(1)  # wstrzymuje korutynę na 1 sekundę
    print("Świat")

asyncio.run(say_hello())

Tutaj await przekazuje kontrolę do pętli zdarzeń, która może przełączać się między innymi korutynami, zapewniając asynchroniczność.

W ten sposób korutyny pozwalają pisać kod asynchroniczny podobny do synchronicznego, upraszczając obsługę zadań równoległych.