Sobes.tech
Junior — Middle

Comment la mémoire est-elle allouée et gérée lors de l'utilisation des goroutines en langage Go?

sobes.tech IA

Réponse de l'IA

Dans Go, les goroutines sont des threads légers gérés par le runtime de Go. Lors de la création d'une goroutine, une petite pile mémoire (généralement d'environ 2 Ko) est allouée, qui peut croître et diminuer dynamiquement selon les besoins. Cela permet une utilisation efficace de la mémoire, car la pile n'est pas fixe et s'adapte à la charge.

La gestion de la mémoire se fait via le planificateur de Go, qui répartit les goroutines sur les threads système. La pile de la goroutine est placée dans le tas, et le ramasse-miettes libère automatiquement la mémoire inutilisée.

Exemple de création d'une goroutine:

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

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

Ainsi, Go masque au développeur les détails de la gestion de la mémoire des goroutines, assurant simplicité et efficacité dans l'exécution parallèle.