Wait group

主要是为了等待所有的协程都完成。使用方式如下所示


func job(index int) int {
    time.Sleep(time.Millisecond * 500)
  return index
}

func main() {
  wg := sync.WaitGroup{}
  // 也可以 var wg sync.WaitGroup 会自动初始化零值
   for i := 0; i < 5; i++ {
        wg.Add(1)
       go func(index int) {
            defer wg.Done() // 这别忘记了要减掉,不然wait会一直等待,导致死锁
            fmt.Println(job(index))
     }(i)
    }
   wg.Wait()
}
最后修改:2023 年 12 月 30 日
如果觉得我的文章对你有用,请随意赞赏