Sobes.tech
Junior — Middle

Quels types de mise en œuvre de tâches parallèles connaissez-vous?

sobes.tech IA

Réponse de l'IA

En Go, les tâches parallèles peuvent être implémentées de plusieurs façons :

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

  • Canaux — utilisés pour la communication et la synchronisation entre goroutines, permettant de transférer des données en toute sécurité.

  • Pools de workers — un groupe de goroutines qui prennent des tâches dans une file d'attente et les traitent, aidant à contrôler le nombre de goroutines en cours d'exécution.

  • sync.WaitGroup — pour attendre la fin d'un groupe de goroutines.

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

ch := make(chan int)
// Lancer une goroutine
go func() {
    ch <- 42 // envoyer une valeur dans le canal
}()
// Recevoir la valeur du canal
val := <-ch
fmt.Println(val)