Sobes.tech
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 параллельді орындауды үйлестіруге көмектеседі және барлық қажетті горутиндер аяқталмайынша бағдарламаның жалғаспауын қамтамасыз етеді.