NOTE

2.2 sync.WaitGroup

1. 是什么 一种控制并发的方式 让一个goroutine等待其他goroutine完成 类似于9.CountDownLatch.md 2. 使用 3. 原理 - 里面维护了一个counter计数器 - Add 增加计数器 - Done 计数器-1 - Wait 等待计数器到达0时往下执行 4. 参

Go创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 是什么

一种控制并发的方式 让一个goroutine等待其他goroutine完成 类似于9.CountDownLatch.md

2. 使用

func main() {
	var wg sync.WaitGroup

	wg.Add(2)
	go func() {
		time.Sleep(2*time.Second)
		fmt.Println("1号完成")
		wg.Done()
	}()
	go func() {
		time.Sleep(2*time.Second)
		fmt.Println("2号完成")
		wg.Done()
	}()
	wg.Wait()
	fmt.Println("好了,大家都干完了,放工")
}

3. 原理

  • 里面维护了一个counter计数器
  • Add增加计数器
  • Done计数器-1
  • Wait等待计数器到达0时往下执行

4. 参考