该
sync.WaitGroup类型应封装您要执行的 *** 作,而无需睡眠呼叫或忙于等待。它使您可以等待任意数量的任务,而不必担心它们完成的顺序。
以您的原始示例为例,您可以将其更改为使用等待组,如下所示:
var wg sync.WaitGroupfor i:=0; i<=10;i++{ wg.Add(1) go func(){ result:=calculate() c<-result wg.Done() }()}// Close the channel when all goroutines are finishedgo func() { wg.Wait() close(c)}()for result:= range c{ all_result=append(all_result, result...)}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)