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.