Appearance
本质上应该是信号量
Add
Done
Wait
type WaitGroup struct { noCopy noCopy state atomic.Uint64 sema uint32 }
可以看到,关于信号量的递增或者递减是原子操作,且不允许WaitGroup进行复制的操作 —— 因为复制之后会导致计数器不准确
WaitGroup
所以在传递WaitGroup的时候,只能传递指针类型,指向我们需要的WaitGroup