Sobes.tech
Middle+

მითხარი WaitGroup-ის შესახებ Go-ში.

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 ეხმარება პარალელური ოპერაციების დასრულების კონტროლში.