Una coroutine è una funzione generale che può avere il suo flusso di controllo interrotto e ripreso, permettendo di essere usata per la programmazione asincrona e la scrittura di codici simultanei.
La differenza principale tra una coroutine e una funzione normale è che, mentre la chiamata a una funzione normale inizierà l’esecuzione della funzione dall’inizio, la chiamata a una coroutine può riprendere l’esecuzione da qualsiasi punto di ingresso definito all’interno della funzione, in base all’ultimo stato.
Il vantaggio principale di utilizzare le coroutine è che permettono di scrivere codice asincrono in uno stile di programmazione sincrono più facile da capire e leggere.
Nei linguaggi di programmazione moderni, tra cui Python, le coroutine sono spesso usate per gestire operazioni che includono attese o rituali di blocco, come io/input, operazioni di rete, operazioni di database, ecc.