Sobes.tech
Junior — Middle

Ի՞նչ է WaitGroup կառուցվածքի դերը և նշանակությունը Go-ում ծրագրավորման ժամանակ։

sobes.tech AI

Պատասխան AI-ից

Go լեզվում, WaitGroup կառուցվածքը օգտագործվում է մի քանի goroutine-ների սինխրոնիզացման համար: Այն թույլ է տալիս հիմնական goroutine-ին սպասել մյուս goroutine-ների ավարտին:

Հիմնական մեթոդներ:

  • Add(int): ավելացնում է սպասվող goroutine-ների քանակը:
  • Done(): նվազեցնում է հաշվիչը 1-ով, երբ goroutine-ը ավարտվում է:
  • Wait(): բլոկավորում է կատարման գործընթացը մինչև հաշվիչը չդառնա 0:

Օգտագործման օրինակ:

var wg sync.WaitGroup
wg.Add(2) // սպասում ենք 2 goroutine-ի

go func() {
    defer wg.Done()
    // goroutine-1-ի աշխատանքը
}()

go func() {
    defer wg.Done()
    // goroutine-2-ի աշխատանքը
}()

wg.Wait() // սպասում ենք երկու goroutine-ների ավարտին

Այսպիսով, WaitGroup-ը օգնում է ճիշտ կառավարել հարյուրամյա կատարմանը և սպասել առաջադրանքների ավարտին։