Aller au contenu
uencoder

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

Termes associés

References