Coroutine
Une coroutine est une fonction qui peut être suspendue et reprise, commutant de manière coopérative sans ordonnancement de l'OS, plus légère qu'un thread.
Objectif
Écrire du code asynchrone avec une syntaxe de style synchrone, plus intuitif que les callbacks/Promesses.
Mécanisme
Une coroutine se suspend (yield/await), rendant le contrôle à l'appelant, et reprend au point de suspension. Sans la surcharge de commutation de threads de l'OS, un seul thread peut exécuter des millions de coroutines. Python async/await, goroutine de Go, JS async/await.
Cas d’usage
- Programmation asynchrone
- Haute concurrence
- Ordonnancement léger