Quelle est la différence entre un processus, un thread et une goroutine?
sobes.tech IA
Réponse de l'IA
Un processus est une unité d'exécution isolée avec son propre espace d'adressage, ses ressources et sa mémoire. Chaque processus fonctionne indépendamment, et pour échanger des données entre processus, on utilise généralement la communication inter-processus (IPC).
Un thread est un flux d'exécution léger à l'intérieur d'un processus, qui partage la mémoire et les ressources avec d'autres threads du même processus. Les threads permettent d'exécuter plusieurs tâches en parallèle au sein d'un même processus.
Une goroutine est une abstraction d'un thread léger dans le langage Go. Les goroutines sont beaucoup plus légères en ressources que les threads système, et sont gérées par le planificateur du runtime Go. Elles permettent d'écrire du code concurrent plus simple et plus efficace qu'avec des threads classiques.
Exemple de création d'une goroutine en Go:
func sayHello() {
fmt.Println("Bonjour depuis la goroutine")
}
func main() {
go sayHello() // démarrer la goroutine
time.Sleep(time.Second) // attendre pour que la goroutine ait le temps de s'exécuter
}