Go的WaitGroup是一种并发编程中非常有用的工具,用于等待一组goroutine完成其任务。在Go中,WaitGroup是一个计数信号量,用于等待一组goroutine完成任务。
下面是使用WaitGroup和Go并发编程的最佳实践:
var wg sync.WaitGroup
wg.Add(1)
go func() { defer wg.Done() // 执行任务的代码 }()
wg.Wait()
go func() { defer func() { if r := recover(); r != nil { fmt.Println("goroutine crashed:", r) } wg.Done() }() // 执行任务的代码 }()
这些是使用WaitGroup和Go并发编程的最佳实践。使用WaitGroup可以方便地等待一组goroutine完成任务,并确保在所有任务完成之后继续执行下一个步骤。同时,还需要注意并发安全和错误处理的问题,以确保程序的正确性和稳定性。