怎么給WaitGroup加超時時間呢?剛好群里有人問了我這個問題,我就把我的方法在這邊貼出來了。
代碼如下:
var w = sync.WaitGroup{}
var ch = make(chan bool)
w.Add(2)
go func() {
time.Sleep(time.Second * 2)
fmt.Println("我2秒")
w.Done()
}()
go func() {
time.Sleep(time.Second * 6)
fmt.Println("我6秒")
w.Done()
}()
go func() {
w.Wait()
ch <- false
}()
select {
case <-time.After(time.Second * 5):
fmt.Println("我超時了")
case <-ch:
fmt.Println("我結束了")
}
設置一個協程超時:

設置所有協程都不超時:

這樣就可以輕松實現啦
