Sobes.tech
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
}