Golang WaitGroup 原理深度剖析
sync.WaitGroup
是 Golang 中常用的并发措施,我们可以用它来等待一批 Goroutine 结束。
WaitGroup 的源码也非常简短,抛去注释外也就 100 行左右的代码。但即使是这 100 行代码,里面也有着关乎内存优化、并发安全考虑等各种性能优化手段。
本文将基于 go-1.13 的源码 进行分析,将会涉及以下知识点:
- WaitGroup 的实现逻辑
- WaitGroup 的底层内存结构及性能优化
- WaitGroup 的内部如何实现无锁操作