Sobes.tech
Junior — Middle

Comment la gestion et la répartition des tâches entre les goroutines sont-elles effectuées dans le langage Go?

sobes.tech IA

Réponse de l'IA

Dans le langage Go, la gestion et la répartition des tâches entre les goroutines sont effectuées par un ordonnanceur (scheduler) intégré dans le runtime de Go. Les goroutines sont des threads légers qui sont lancés à l’aide du mot-clé go.

L’ordonnanceur de Go répartit les goroutines entre les threads système (OS threads) et gère leur exécution, assurant la concurrence et le parallélisme. Il utilise un modèle M:N, où M est le nombre de threads système et N le nombre de goroutines.

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, le développeur lance simplement la goroutine, et le runtime de Go répartit les tâches et effectue des commutations entre elles.