所有goroutine完成后,让golang关闭使用的频道

所有goroutine完成后,让golang关闭使用的频道,第1张

所有goroutine完成后,让golang关闭使用的频道

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...)}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5476311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存