Junior — Middle
Горутиндерді синхрондауда Wait Group құрылымының мақсаты неде?
sobes.tech AI
AI-дан жауап
WaitGroup — Go тілінде бірнеше горутинді синхрондау үшін пайдаланылады. Ол негізгі горутинке (немесе басқа кез келгеніне) бірнеше горутиннің аяқталуын күтуді қамтамасыз етеді.
WaitGroup негізгі мақсаты — белсенді горутиндердің санын бақылау және барлық олар аяқталғанша орындалуды тоқтату.
Қолдану мысалы:
var wg sync.WaitGroup
wg.Add(3) // 3 горутиннің аяқталуын күтеміз
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // горутиннің аяқталғанын хабарлау
// горутин жұмысы
fmt.Println("Горутина", id, "аяқталды")
}(i)
}
wg.Wait() // санақ 0 болғанша күтеміз
fmt.Println("Барлық горутиндер аяқталды")
Осылайша, WaitGroup параллельді орындауды үйлестіруге көмектеседі және барлық қажетті горутиндер аяқталмайынша бағдарламаның жалғаспауын қамтамасыз етеді.