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 тапшырмаларды параллелдүү аткарууну жана алардын аяктоо күтүүнү туура башкарууга жардам берет.