Sobes.tech
Senior

Où vont les goroutines lors de leur création : dans la file d'attente locale ou globale du planificateur Go ?

sobes.tech IA

Réponse de l'IA

Lors de la création d'une goroutine en Go, elle est placée dans la file d'attente locale du planificateur (local run queue), qui appartient à un M spécifique (machine, thread système).

L'environnement d'exécution de Go utilise un modèle M:N, où M représente les threads système et G les goroutines. Chaque M possède sa propre file d'attente locale de goroutines pour l'exécution. Si la file d'attente locale déborde ou est vide, le planificateur peut équilibrer les goroutines entre la file locale et la file globale.

Ainsi, une nouvelle goroutine est d'abord placée dans la file d'attente locale du planificateur, ce qui permet d'utiliser efficacement le cache du processeur et de réduire les coûts de changement de contexte.