Sobes.tech
Junior — Middle

Wait Group деген эмне жана ал программалоодо эмне үчүн колдонулат, түшүндүрүп бере аласызбы?

sobes.tech AI

AIден жооп

Go'да күтүү тобу sync пакетінен алынган структура болуп, ал goroutine тобунун бүтүшүн күтүүгө колдонулат. Ал негизги goroutine (же башка) башталган бардык goroutine'дер ишин бүткөнгө чейин тоскоолдук кылууга мүмкүндүк берет.

Негизги ыкмалары:

  • Add(int) — күтүлүп жаткан goroutine'дердин санын көбөйтөт.
  • Done() — санды азайтат, goroutine аяктагандан кийин чакырылат.
  • Wait() — сан нөлгө жеткенче ишти токтотот.

Кененирээк колдонуу мисалы:

var wg sync.WaitGroup
wg.Add(2) // 2 goroutine күтүп жатабыз

go func() {
    defer wg.Done()
    // биринчи goroutine иши
}()

go func() {
    defer wg.Done()
    // экинчи goroutine иши
}()

wg.Wait() // экинин бүтүшүн күтүп жатабыз

Бул параллелдик тапшырмаларды синхрондоштуруу жана программаны эрте аяктоосун алдын алуу үчүн пайдалуу.