Senior
Did you decide to write a WaitGroup because you got a channel or goroutines for some reason?
sobes.tech AI
Answer from AI
WaitGroup in Go is used to wait for a group of goroutines to finish.
If you have several goroutines performing parallel tasks and need to wait for their completion before proceeding, WaitGroup is a convenient tool.
Channels and goroutines are different mechanisms. A channel is used for communication and synchronization between goroutines, while WaitGroup is used to wait for their completion.
For example, if you have goroutines performing tasks and want to wait until all of them finish, you use WaitGroup:
var wg sync.WaitGroup
wg.Add(3) // expecting 3 goroutines
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done()
// goroutine work
fmt.Println("Goroutine", id, "finished")
}(i)
}
wg.Wait() // wait for all goroutines to finish
Thus, WaitGroup is used because there are goroutines that need to be synchronized upon completion, not because of the appearance of channels.