1. 首页
  2. 主题
  3. Go实战

什么时候用chan??什么时候用sync.WaitGroup???

zhaohao · · 6942 次点击
比如: ``` var wg = new(sync.WaitGroup) func work(){ defer wg.Done() ... } func Test(N int){ for i := 0; i < N; i++{ wg.Add(1) go work() } wg.Wait() } ``` 和这样 ``` func work(ch chan int){ ... ch <- 0 } func Test(N int){ for i := 0; i < N; i++{ go work() } for i := 0; i < N; i++{ <-ch } } ``` 到底用那种??? 不知道什么时候用chan还是sync.WaitGroup??
简单来说,如果不需要goroutine之间有什么通信WG足以
#3
更多评论
第一种wg主要用于多个goroutine之间的控制,就是所有的work()执行完了Test()才能执行完,第二种chan主要用于goroutine之间传递数据,就像work()中发送数据,Test()中接收数据一样。
#1

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中