Sobes.tech
Junior — Middle

თქვენ გამოიყენეთ waitgroup სინქრონიზაციის მექანიზმი თქვენი პროგრამის განხორციელებისას?

sobes.tech AI

პასუხი AI-სგან

დიახ, Go ენისში sync.WaitGroup მექანიზმი ხშირად გამოიყენება რამდენიმე goroutine-ის სინქრონიზაციისთვის. იგი საშუალებას აძლევს მთავარ goroutine-ს დაელოდოს პარალელური დავალებების დასრულებას.

გამოყენების მაგალითი:

var wg sync.WaitGroup

wg.Add(3) // ველით 3 goroutine-ს

for i := 0; i < 3; i++ {
    go func(id int) {
        defer wg.Done() // დასრულების სიგნალი
        fmt.Printf("Goroutine %d მუშაობს\n", id)
        // რაიმე სამუშაო
    }(i)
}

wg.Wait() // ველით, სანამ ყველა Done-ი არ გამოიძახებათ
fmt.Println("ყველა goroutine დასრულდა")

ამ გზით, WaitGroup ეხმარება პარალელიზმის სწორად მართვაში და უზრუნველყოფს, რომ პროგრამა ადრე არ დასრულდეს.