在Golang中,WaitGroup是用來管理并發任務的一個非常有用的工具。它可以用來等待一組并發任務完成之后再繼續執行后續的代碼。
下面是一些使用WaitGroup的實踐技巧,可以幫助你編寫高效的并發程序:
var wg sync.WaitGroup
wg.Add(1) // 添加一個任務到WaitGroup
go func() {
// 并發任務的代碼邏輯
wg.Done() // 任務完成后調用Done方法
}()
wg.Wait() // 等待所有任務完成
go func() {
// 并發任務的代碼邏輯
wg.Done() // 任務完成后調用Done方法
}()
go func() {
time.Sleep(5 * time.Second) // 設置一個定時器,等待5秒鐘
wg.Done() // 超時后調用Done方法
}()
wg.Wait() // 等待所有任務完成
var (
mu sync.Mutex
count int
errs []error
)
wg.Add(1)
go func() {
defer wg.Done()
// 并發任務的代碼邏輯
err := doSomething()
if err != nil {
mu.Lock()
errs = append(errs, err)
mu.Unlock()
}
}()
wg.Wait()
// 檢查是否有錯誤發生
if len(errs) > 0 {
// 處理錯誤
}
這些是一些使用Golang WaitGroup的實踐技巧,可以幫助你編寫高效的并發程序。希望對你有所幫助!