Sobes.tech
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.