Sobes.tech
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 ეხმარება პარალელური შესრულების და დავალებების დასრულების სწორად მართვაში.