Sobes.tech
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() // սպասում ենք երկու գորուտինների ավարտին

Այսը օգտակար է հոսքային առաջադրանքների սինխրոնիզացման և ծրագրի վաղաժամ ավարտումը կանխելու համար։