Sobes.tech
Junior — Middle

Est-il obligatoire que Go effectue un changement automatique de contexte d'exécution entre les goroutines?

sobes.tech IA

Réponse de l'IA

Dans Go, le changement automatique de contexte entre goroutines se produit, mais pas dans le sens classique du multitâche préemptif, comme dans les systèmes d'exploitation.

Les goroutines sont des threads légers gérés par le runtime de Go. Le planificateur de Go alterne l'exécution entre les goroutines pour utiliser efficacement les threads système.

Caractéristiques :

  • Le planificateur de Go utilise la multitâche coopérative : la goroutine doit céder le contrôle, par exemple lors d'appels à des opérations bloquantes ou des fonctions qui font explicitement yield.
  • Depuis la version Go 1.14, un support limité pour la préemption a été ajouté, permettant au planificateur d'interrompre une goroutine si elle ne cède pas le contrôle pendant longtemps.

Ainsi, le changement de contexte entre goroutines se produit automatiquement et de manière transparente pour le développeur, mais avec certaines particularités qui diffèrent des systèmes d'exploitation classiques.