Last updated
Last updated
是一个特殊的私有结构体, 包中的分析器会在编译期间检查被拷贝的变量中是否包含 或者实现了 Lock
和 Unlock
方法,如果包含该结构体或者实现了对应的方法就会报出以下错误:copies lock value: sync.WaitGroup
对外暴露了三个方法:、 和 。
因为其中的 只是向 方法传入了 -1,所以我们重点分析另外两个方法,即 和 。
只是对 方法的简单封装,我们可以向 方法传入任意负数(需要保证计数器非负)快速将计数器归零以唤醒等待的协程
可以同时有多个协程等待当前 计数器的归零,这些 Goroutine 会被同时唤醒;