Senior
Avez-vous une idée de la différence entre flux et processus?
sobes.tech IA
Réponse de l'IA
Un processus est une unité d'exécution indépendante avec son propre espace d'adresses, ressources et état. Un thread (goroutine en Go) est une unité plus légère à l'intérieur du processus, partageant la mémoire et les ressources du processus, mais ayant sa propre pile et contexte d'exécution.
En Go, une goroutine est un thread léger géré par le runtime de Go, permettant d'exécuter des milliers de tâches en parallèle avec un coût minimal par rapport aux threads système.
Principales différences :
- Un processus a un espace d'adresses séparé, les threads au sein du processus partagent la mémoire.
- La création d'un processus est plus coûteuse en ressources que la création d'un thread.
- En Go, une goroutine est un thread géré au niveau du langage, pas du système d'exploitation.
Exemple de création d'une goroutine en Go :
func sayHello() {
fmt.Println("Bonjour depuis la goroutine")
}
func main() {
go sayHello() // lance la fonction dans une goroutine
time.Sleep(time.Second) // attend pour que la goroutine ait le temps de s'exécuter
}