我有几个 go 例程,我使用无缓冲通道作为同步机制。
我想知道这是否有什么问题(例如与 WaitGroup 实现相比)。我知道的一个已知“缺点”是,两个 go 例程可能会一直阻塞,直到第 3 个(最后一个)完成,因为通道没有缓冲,但我不知道内部结构/这真正意味着什么。
func main() {
chan1, chan2, chan3 := make(chan bool), make(chan bool), make(chan bool)
go fn(chan1)
go fn(chan2)
go fn(chan3)
res1, res2, res3 := <-chan1, <-chan2, <-chan3
}
一只萌萌小番薯
尚方宝剑之说
相关分类