Junior — Middle
რა არის WaitGroup-ის სტრუქტურის როლი და დანიშნულება Go-ში განვითარების დროს?
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 ეხმარება პარალელური შესრულების და დავალებების დასრულების სწორად მართვაში.