Middle+
Պատմիր ինձ Go-ի մասին WaitGroup- ի մասին։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, sync.WaitGroup օգտագործվում է խմբի goroutines ավարտին սպասելու համար: Դա հարմար միջոց է հոսքային առաջադրանքների սինխրոնիզացման համար:
Հիմնական մեթոդներ՝
Add(int)— ավելացնում է սպասվող goroutine-ների քանակը:Done()— նվազեցնում է հաշվիչը, երբ goroutine-ն ավարտվում է:Wait()— բլոկավորում է կատարման ընթացքը մինչև հաշվիչը չհասնի զրոյի:
Օգտագործման օրինակ՝
var wg sync.WaitGroup
wg.Add(2) // սպասում ենք 2 goroutine-ի
go func() {
defer wg.Done()
// առաջին goroutine-ի աշխատանքը
}()
go func() {
defer wg.Done()
// երկրորդ goroutine-ի աշխատանքը
}()
wg.Wait() // սպասում ենք, մինչև երկուսը ավարտվեն
Այս կերպ, WaitGroup օգնում է վերահսկել հոսքային օպերացիաների ավարտը։