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.