Sobes.tech
Middle+

Goдагы WaitGroup жөнүндө айтып бер.

sobes.tech AI

AIден жооп

Go тилинде, sync.WaitGroup бир топ 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() // экиси да аяктагандан кийин күтөт

Мындайча айтканда, WaitGroup параллелдик операциялардын аяктоо процессин көзөмөлдөөгө жардам берет.