WaitGroup Go · 常用包功能
并发等待计数器(sync 包):Add(1) 把计数加一,协程干完活调 Done() 减一,主协程 Wait() 卡在原地等计数归零再继续。
怎么用
var wg sync.WaitGroup
wg.Add(1)
go func() { ...; 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("干活") }()
wg.Wait()
fmt.Println("干完了")
}
输出
输出 干活,再输出 干完了(Wait 保证顺序)
提醒:AI 生成的并发代码常见三件套 Add/Done/Wait;Done 常用 defer 挂上,保证一定被执行。
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Go全部词条