我遇到的情况是,主要的 go 例程将创建“x”个 go 例程。但它只对要完成的“y”( y < x ) go 例程感兴趣。
我本来希望使用 Waitgroup。但 Waitgroup 只允许我等待所有 go 例程。例如,我不能这样做,
1. wg.Add (y)
2 create "x" go routines. These routines will call wg.Done() when finished.
3. wg. Wait()
Run Code Online (Sandbox Code Playgroud)
当 y+1 go 例程调用 wg.Done() 时,会出现恐慌,因为 wg 计数器变为负值。
我当然可以使用渠道来解决这个问题,但我对 Waitgroup 是否能解决这个问题感兴趣。