Sobes.tech
Junior — Middle

A programja megvalósítása során használta a waitgroup szinkronizációs mechanizmust?

sobes.tech MI

Válasz az MI-től

Igen, Go nyelvben a sync.WaitGroup mechanizmusát gyakran használják több goroutine szinkronizálására. Lehetővé teszi a fő goroutine számára, hogy várjon egy párhuzamos feladatok halmazának befejezésére.

Használati példa:

var wg sync.WaitGroup

wg.Add(3) // 3 goroutine várása

for i := 0; i < 3; i++ {
    go func(id int) {
        defer wg.Done() // befejezés jelzése
        fmt.Printf("Goroutine %d fut\n", id)
        // valamilyen munka
    }(i)
}

wg.Wait() // várunk, amíg minden Done hívás megtörténik
fmt.Println("Minden goroutine befejeződött")

Így a WaitGroup segít a párhuzamosság helyes kezelésében, és garantálja, hogy a program nem fog korábban befejeződni.