Junior — Middle
Dasturingizni amalga oshirishda waitgroup sinxronizatsiya mexanizmidan foydalandingizmi?
sobes.tech AI
AIdan javob
Ha, Go tilida sync.WaitGroup mexanizmi ko'plab gorutinalarni sinxronlashtirish uchun ko'pincha ishlatiladi. U asosiy gorutina paralel vazifalar to'plamining yakunlanishini kutishga imkon beradi.
Foydalanish misoli:
var wg sync.WaitGroup
wg.Add(3) // 3 ta gorutina kutamiz
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // yakunlanganligini bildirish
fmt.Printf("Gorutina %d ishga tushdi\n", id)
// biron bir ish
}(i)
}
wg.Wait() // barcha Done chaqirilishini kutamiz
fmt.Println("Barcha gorutinalar yakunlandi")
Shu tarzda, WaitGroup, parallelizmni to'g'ri boshqarishga yordam beradi va dastur oldindan tugamaydi.