Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ, რა არის Wait Group და რა მიზნით გამოიყენება პროგრამირებაში?

sobes.tech AI

პასუხი AI-სგან

Go-ში Wait Group არის sync პაკეტიდან შემავალი სტრუქტურა, რომელიც გამოიყენება გორუტინების ჯგუფის დასრულების მოსალოდნელობისთვის. იგი საშუალებას აძლევს მთავარ გორუტინს (ან სხვა) ბლოკირდეს მანამ, სანამ ყველა დაწყებული გორუტინა არ დასრულდება.

ძირითადი მეთოდები:

  • Add(int) — ზრდის მოსალოდნელი გორუტინების რაოდენობას.
  • Done() — ამცირებს გამოთვლას, გამოიძახება გორუტინის დასრულებისას.
  • Wait() — ბლოკავს შესრულებას მანამ, სანამ გამოთვლა არ გახდება ნული.

გამოყენების მაგალითი:

var wg sync.WaitGroup
wg.Add(2) // ველით 2 გორუტინას

go func() {
    defer wg.Done()
    // პირველი გორუტინის სამუშაო
}()

go func() {
    defer wg.Done()
    // მეორე გორუტინის სამუშაო
}()

wg.Wait() // ველით ორივეს დასრულებას

ეს სასარგებლოა პარალელური დავალებების სინქრონიზაციისთვის და პროგრამის ადრე დასრულების თავიდან ასაცილებლად.