Sobes.tech
Junior — Middle

Quelles techniques de traitement parallèle sont implémentées dans le langage Go?

sobes.tech IA

Réponse de l'IA

Go met en œuvre les techniques suivantes de traitement des tâches parallèles :

  • Goroutines — threads légers démarrés avec le mot-clé go. Ils permettent d'exécuter des fonctions en parallèle.

  • Canaux — mécanisme de communication entre goroutines, permettant de transmettre des données et de synchroniser l'exécution.

  • Sélecteurs — construction pour attendre plusieurs opérations sur des canaux, permettant de traiter des données provenant de plusieurs sources.

  • Package sync — contient des primitives de synchronisation telles que Mutex, WaitGroup, Once, qui aident à gérer l'accès aux ressources partagées et à coordonner la fin des goroutines.

Exemple de lancement d'une goroutine et de transmission de données via un canal :

package main
import (
    "fmt"
)
func worker(ch chan string) {
    ch <- "prêt"
}
func main() {
    ch := make(chan string)
    go worker(ch)
    msg := <-ch
    fmt.Println(msg) // sortie : prêt
}