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 ეხმარება პარალელიზმის სწორად მართვაში და უზრუნველყოფს, რომ პროგრამა ადრე არ დასრულდეს.