Coroutine
Una corrutina es una función que puede suspenderse y reanudarse, conmutando de forma cooperativa sin planificación del SO, más ligera que un hilo.
Propósito
Escribir código asíncrono con sintaxis de estilo síncrono, más intuitivo que callbacks/Promises.
Mecanismo
Una corrutina se suspende (yield/await), devolviendo el control al llamador, y se reanuda desde el punto de suspensión. Sin la sobrecarga del cambio de hilo del SO, un solo hilo puede ejecutar millones de corrutinas. Python async/await, goroutine de Go, JS async/await.
Casos de uso
- Programación asíncrona
- Alta concurrencia
- Planificación ligera