Sobes.tech
Junior — Middle

Dans quels cas une goroutine termine son exécution et transfère le contrôle à une autre?

sobes.tech IA

Réponse de l'IA

En Go, une goroutine cesse son exécution et transfère le contrôle à une autre goroutine dans les cas suivants :

  • Lorsqu'une goroutine appelle explicitement une fonction qui la bloque (par exemple, la lecture depuis un canal vide).
  • Lorsqu'on utilise le mot-clé runtime.Gosched(), qui cède volontairement le processeur à d'autres goroutines.
  • Lorsqu'une goroutine termine sa fonction (retourne de la fonction), elle cesse d'exécuter.

Le planificateur de goroutines de Go bascule automatiquement l'exécution entre les goroutines, assurant la concurrence. Par exemple, lors d'un blocage sur une opération d'entrée/sortie ou en attendant des données d'un canal, la goroutine en cours est suspendue et le contrôle est transféré à une autre.