Sobes.tech
Junior — Middle

Qu'est-ce qui rend les goroutines plus efficaces par rapport aux threads d'implémentation traditionnelle?

sobes.tech IA

Réponse de l'IA

Les goroutines en Go sont plus efficaces que les threads traditionnels grâce à plusieurs caractéristiques clés :

  • Légèreté : Les goroutines utilisent très peu de mémoire (environ 2 Ko de pile), alors que les threads système nécessitent beaucoup plus de mémoire.
  • Planificateur au niveau du langage : Go possède son propre planificateur de goroutines, qui répartit efficacement leur exécution sur les threads système, permettant de lancer des milliers de goroutines simultanément sans coûts importants.
  • Création et changement de contexte rapides : La création et le changement entre goroutines sont beaucoup plus rapides qu'entre threads OS, ce qui réduit les coûts de multitâche.

Exemple de création d'une goroutine :

func sayHello() {
    fmt.Println("Bonjour depuis la goroutine")
}

func main() {
    go sayHello() // lancer la goroutine
    time.Sleep(time.Second) // attendre pour que la goroutine ait le temps de s'exécuter
}