Junior — Middle
Ի՞նչ է Wait Group կառուցվածքի նպատակը goroutine-ների սինխրոնիզացիայում։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում WaitGroup-ը օգտագործվում է մի քանի goroutine-ների սինխրոնիզացման համար: Այն թույլ է տալիս հիմնական goroutine-ին (կամ ցանկացած այլ) սպասել goroutine-ների խմբի ավարտին:
WaitGroup-ի հիմնական նպատակն է հետևել ակտիվ goroutine-ների քանակին և բլոկավորել գործարկումը մինչև բոլորը ավարտվեն:
Օգտագործման օրինակ:
var wg sync.WaitGroup
wg.Add(3) // սպասում ենք 3 goroutine-ի ավարտին
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // նշում ենք goroutine-ի ավարտը
// goroutine-ի աշխատանքը
fmt.Println("Goroutine", id, "ավարտվեց")
}(i)
}
wg.Wait() // սպասում ենք մինչև հաշվիչը դառնա 0
fmt.Println("Բոլոր goroutine-ները ավարտվեցին")
Այսպիսով, WaitGroup-ը օգնում է համաժամանակեցնել հորիզոնական կատարմանը և ապահովում, որ ծրագիրը չի շարունակվի մինչև բոլոր անհրաժեշտ goroutine-ները չավարտվեն։