Sobes.tech
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.