Junior — Middle
În timpul implementării programului dvs., ați folosit mecanismul de sincronizare waitgroup?
sobes.tech AI
Răspuns de la AI
Da, în Go, mecanismul sync.WaitGroup este adesea folosit pentru a sincroniza mai multe goroutines. Acesta permite goroutinei principale să aștepte finalizarea unui set de sarcini paralele.
Exemplu de utilizare:
var wg sync.WaitGroup
wg.Add(3) // așteptăm 3 goroutines
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // semnalăm finalizarea
fmt.Printf("Goroutine %d în execuție\n", id)
// o anumită muncă
}(i)
}
wg.Wait() // așteptăm până când toate apelurile Done sunt făcute
fmt.Println("Toate goroutine-urile au fost finalizate")
Astfel, WaitGroup ajută la gestionarea corectă a paralelismului și garantează că programul nu se va încheia mai devreme.