Sobes.tech
Junior — Middle

Go dasturlashda WaitGroup tuzilmasining roli va maqsadi nima?

sobes.tech AI

AIdan javob

Go tilida, WaitGroup tuzilmasi bir nechta goroutinlarni sinxronlashtirish uchun ishlatiladi. U asosiy goroutine'ga boshqa goroutinlarning yakunlanishini kutishga imkon beradi.

Asosiy metodlar:

  • Add(int): kutayotgan goroutinlar sonini oshiradi.
  • Done(): hisoblagichni 1 ga kamaytiradi, goroutine tugagach chaqiriladi.
  • Wait(): hisoblagich 0 bo'lguncha bajarilishni bloklaydi.

Foydalanish misoli:

var wg sync.WaitGroup
wg.Add(2) // 2 ta goroutine kutamiz

go func() {
    defer wg.Done()
    // goroutine 1 ning ishlashi
}()

go func() {
    defer wg.Done()
    // goroutine 2 ning ishlashi
}()

wg.Wait() // ikkala goroutine yakunlanishini kutamiz

Shu tarzda, WaitGroup vazifalarni parallel bajarilishini va yakunlanishini to'g'ri boshqarishga yordam beradi.