Middle+
Combien de processus ou de threads une seule programme peut-elle lancer?
sobes.tech IA
Réponse de l'IA
Dans un programme, le nombre de processus et de threads exécutés simultanément n’est pas strictement limité par le langage ou le système d’exploitation, mais dépend des ressources du système (mémoire vive, temps CPU) et des restrictions du système d’exploitation.
Dans le contexte de Go :
- Les processus sont des instances séparées d’un programme, gérées par le système d’exploitation, généralement lancées via des appels système.
- Les threads en Go ne sont pas créés directement, à la place, on utilise des goroutines, qui sont plus légères que les threads et gérées par le planificateur de Go.
Le nombre de goroutines peut être très élevé (des milliers voire des millions), limité uniquement par la mémoire et la performance.
Exemple de création de goroutines :
package main
import (
"fmt"
"time"
)
func worker(id int) {
fmt.Printf("Travailleur %d démarré\n", id)
time.Sleep(time.Second)
fmt.Printf("Travailleur %d terminé\n", id)
}
func main() {
for i := 0; i < 10; i++ {
go worker(i) // lance 10 goroutines
}
time.Sleep(2 * time.Second) // attend la fin
}
Ainsi, dans un programme en Go, il peut y avoir un grand nombre de goroutines, et le nombre de processus dépend du nombre d’instances du programme que vous lancez.