Junior — Middle
Peut-on utiliser des canaux comme mécanisme pour coordonner l'exécution des tâches entre goroutines?
sobes.tech IA
Réponse de l'IA
Oui, en Go, les canaux (channels) sont le mécanisme principal pour coordonner et synchroniser l'exécution des tâches entre goroutines. Ils permettent de transférer des données en toute sécurité entre goroutines, tout en bloquant l'expéditeur ou le récepteur jusqu'à ce que l'autre partie soit prête.
Exemple d'utilisation d'un canal pour la coordination:
ch := make(chan int)
func() {
// Exécution de la tâche
ch <- 1 // Envoi du signal de fin
}()
// Attente du signal de la goroutine
<-ch
Ainsi, les canaux aident à éviter les conditions de course et simplifient la synchronisation entre goroutines.