Sobes.tech
Junior — Middle

Siz Wait Group nima ekanligini va u dasturlashda nima uchun ishlatilishini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

Go'da Wait Group sync paketidan bo'lak bo'lib, goroutine guruhining tugashini kutish uchun ishlatiladi. Bu asosiy goroutine (yoki boshqa) boshlagan barcha goroutine'lar tugaguncha bloklanadi.

Asosiy metodlar:

  • Add(int) — kutayotgan goroutine'lar sonini oshiradi.
  • Done() — sonni kamaytiradi, goroutine tugagach chaqiriladi.
  • Wait() — son nolga teng bo'lguncha bajarilishini to'xtatadi.

Foydalanish misoli:

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

go func() {
    defer wg.Done()
    // birinchi goroutine ishlashi
}()

go func() {
    defer wg.Done()
    // ikkinchi goroutine ishlashi
}()

wg.Wait() // ikkala goroutine tugashini kutamiz

Bu parallel vazifalarni sinxronlashtirish va dastur erta tugashining oldini olish uchun qulay.