NOTE

WaitGroup

1. 是什么 一种控制并发的方式 让一个goroutine等待其他goroutine完成 类似于9.CountDownLatch.md 2. 使用 3. 原理 里面维护了一个counter计数器 Add 增加计数器 Done 计数器 1 Wait 等待计数器到达0时往下执行 4. 参考 Go语言实战笔记(二十)\ Go Context \ 飞雪无情的博客

Go约 1 分钟读完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. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看