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完成任務,并確保在所有任務完成之后繼續執行下一個步驟。同時,還需要注意并發安全和錯誤處理的問題,以確保程序的正確性和穩定性。