Sobes.tech
Junior — Middle

Go программалоодо WaitGroup структурасынын ролу жана максаты эмнеде?

sobes.tech AI

AIден жооп

Go тилинде, WaitGroup структурасы бир нече goroutine'лердин синхрондоштуруу үчүн колдонулат. Ал негизги goroutine'ге башка goroutine'лердин аяктоо үчүн күтүүгө мүмкүндүк берет.

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

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

Колдонуу мисалы:

var wg sync.WaitGroup
wg.Add(2) // 2 goroutine күтүлүүдө

go func() {
    defer wg.Done()
    // goroutine 1 иши
}()

go func() {
    defer wg.Done()
    // goroutine 2 иши
}()

wg.Wait() // эки goroutine аяктагынча күтөт

Мындайча, WaitGroup тапшырмаларды параллелдүү аткарууну жана алардын аяктоо күтүүнү туура башкарууга жардам берет.