Junior — Middle
Comment la coordination du travail de plusieurs goroutines est-elle effectuée en Go?
sobes.tech IA
Réponse de l'IA
En Go, la coordination du travail de plusieurs goroutines se fait généralement à l'aide de canaux (channels) et du package sync.
- Canaux permettent aux goroutines d'échanger des données et de synchroniser l'exécution, bloquant l'expéditeur ou le récepteur jusqu'à ce qu'ils soient prêts.
- sync.WaitGroup est utilisé pour attendre la fin d'un groupe de goroutines.
- Mutex et autres primitives de sync assurent un accès sécurisé aux ressources partagées.
Exemple d'utilisation d'un canal pour la synchronisation:
ch := make(chan int)
func() {
// Effectuer le travail
ch <- 1 // signal de fin
}()
<-ch // attendre le signal
Ainsi, les canaux et primitives de synchronisation permettent de coordonner efficacement des tâches parallèles.