在Go语言中,给我们提供了用于线程同步的sync.WaitGroup,简单来讲,WaitGroup就是指等待一组,等待一个系列执行完成后才会继续向下执行。
WaitGroup数据结构
type WaitGroup struct {
noCopy noCopy
state atomic.Uint64 // 高 32 bit 是计数值, 低 32 bit 是 waiter 的计数。
sema uint32
}
- noCopy 是一个辅助字段,用于辅助 vet 工具检查这个 WaitGroup 实例是否被复制。具体来说,如果在执行 go vet 时如果检测到 WaitGroup 实例被复制就会报错。但是执行 go run 是不会报错的。
- state 是一个复合字段,高 32 位是计数值,低 32 位是 waiter 的计数。
- sema 是信号量字段。
三个方法
func (wg *WaitGroup

最低0.47元/天 解锁文章
1007

被折叠的 条评论
为什么被折叠?



