sync.WaitGroup 的典型用法是?

Go

  1. A.Add(n) 登记任务数,每个子 goroutine 结束 Done(),Wait() 阻塞至全部完成
  2. B.用来给 map 加锁,替代 sync.Mutex
  3. C.用来限制一组 goroutine 可占用的 CPU 时间片与内存配额,任一超限即被 Go 运行时强制终止并回收
  4. D.Wait() 必须在所有 Add() 之前调用,否则 panic