Junior — Middle
Quelle est la différence entre une goroutine et un thread système dans le contexte de l'exécution des tâches?
sobes.tech IA
Réponse de l'IA
Une goroutine est une unité d'exécution légère gérée par l'environnement d'exécution de Go (runtime), qui utilise très peu de mémoire et peut être lancée en grand nombre simultanément. Un thread système est une unité de planification plus lourde du système d'exploitation.
Les principales différences :
- Les goroutines sont beaucoup plus légères en ressources que les threads système.
- La planification des goroutines se fait à l'intérieur du runtime de Go, et non par le système d'exploitation.
- Des milliers de goroutines peuvent fonctionner simultanément, alors que le nombre de threads système est généralement inférieur en raison des coûts de création et de commutation.
Exemple de création d'une goroutine :
func tache() {
fmt.Println("Exécution de la tâche")
}
func main() {
go tache() // démarrer la goroutine
time.Sleep(time.Second) // attendre pour que la goroutine ait le temps de s'exécuter
}
Ainsi, les goroutines permettent d'exécuter efficacement de nombreuses tâches en parallèle avec des coûts moindres.