Sobes.tech
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 օգնում է վերահսկել հոսքային օպերացիաների ավարտը։