sync.WaitGroup Go · 包功能
等待组:主 goroutine 用它等待一组子 goroutine 全部完成。
怎么用
var wg sync.WaitGroup; wg.Add(n); defer wg.Done(); wg.Wait()
小例子
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
fmt.Println("done")
}()
wg.Wait()
}
运行结果
输出 done
提醒:Add 必须在启动 goroutine 之前调用,否则可能漏等
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Go全部词条