Sobes.tech
Middle+

WaitGroup haqqında daha ətraflı məlumat ver: necə işləyir, Add, Done, Wait nə edir?

sobes.tech Süni İntellekt

AI-dan cavab

Go'da WaitGroup, qruplar halqalarining tugashini kutish uchun ishlatiladi.

  • Add(n int) — hisoblagichni n ga oshiradi, odatda goroutinlarni ishga tushirishdan oldin chaqiriladi.
  • Done() — hisoblagichni 1 ga kamaytiradi, ish tugagach goroutin ichida chaqiriladi.
  • Wait() — hisoblagich nolga teng bo'lguncha bajarilishini to'xtatadi, ya'ni barcha goroutinlar Done chaqirgach.

Misol:

var wg sync.WaitGroup
wg.Add(3) // 3 ta goroutine kutamiz

for i := 0; i < 3; i++ {
    go func(id int) {
        defer wg.Done()
        fmt.Println("Goroutine", id, "tugadi")
    }(i)
}

wg.Wait() // barcha goroutinlar tugashini kutamiz
fmt.Println("Barcha goroutinlar tugadi")

Shu tarzda, WaitGroup parallel vazifalarni sinxronlashtirishga va ularning tugashini kutishga yordam beradi.