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)