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