Sobes.tech
Junior — Middle
101

Spiega il principio di funzionamento delle coroutine e come vengono gestite durante l'esecuzione.

Risposta dell'AI

sobes.tech AI

Le coroutine sono funzioni che possono sospendere la loro esecuzione e riprenderla successivamente, mantenendo il loro stato. In Python, le coroutine sono implementate con la parola chiave async def e sono gestite tramite un ciclo di eventi (event loop).

Durante l'esecuzione, una coroutine può "attendere" (await) che un'operazione asincrona finisca, liberando il controllo ad altri compiti. Questo permette di lavorare in modo efficiente con operazioni di input/output senza bloccare il thread.

Esempio di una coroutine semplice:

import asyncio

async def say_hello():
    print("Ciao")
    await asyncio.sleep(1)  # sospende la coroutine per 1 secondo
    print("Mondo")

asyncio.run(say_hello())

Qui, await trasferisce il controllo al ciclo di eventi, che può alternarsi tra altre coroutines, garantendo l'asincronia.

In questo modo, le coroutines permettono di scrivere codice asincrono simile a quello sincrono, semplificando la gestione di compiti paralleli.