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.