Middle+
Qu'est-ce que l'asynchronie, la parallélisation et la concurrence dans le contexte de Go ?
sobes.tech IA
Réponse de l'IA
Dans le contexte de Go :
-
Asynchronie — exécution d'opérations sans bloquer le fil principal, généralement via des goroutines et des canaux. Permet de lancer des tâches qui peuvent s'exécuter indépendamment et sans attendre leur fin.
-
Parallélisme — exécution simultanée de plusieurs tâches sur différents cœurs du processeur. En Go, cela est réalisé grâce au planificateur de goroutines, qui les répartit sur les threads système.
-
Concurrence — capacité d'un programme à gérer plusieurs tâches qui peuvent s'exécuter simultanément ou en séquence, en assurant un accès correct aux ressources partagées.
Exemple de goroutine :
func worker(id int) {
fmt.Printf("Travailleur %d démarré\n", id)
// travail
}
func main() {
for i := 1; i <= 5; i++ {
go worker(i) // lancement asynchrone
}
time.Sleep(time.Second) // attendre la fin
}