【发布时间】:2019-05-15 05:38:17
【问题描述】:
伙计们,我想知道如果我只有一种情况(我的频道)并在给定频道关闭时发出结束信号,那么是跨频道还是使用选择更好?
举个例子:
1。 https://play.golang.org/p/3ZFdbgHSKyN
go func() {
for v := range ch {
// do some stuff
}
}()
2。 https://play.golang.org/p/iCCkDge8j72
go func() {
for {
select {
case v, ok := <-ch:
if !ok {
return
}
// do some stuff
}
}
}()
哪种解决方案更受欢迎,为什么?请考虑这样一个事实,即这样的 goroutine 可能会产生很多次(许多工作人员)。
【问题讨论】:
-
@CeriseLimón ye 我说这是一个案例的选择
-
Select with one case 就像一个 switch 只有一个 default case:在混淆比赛中过度使用这些东西。
-
@CeriseLimón 随时将您的评论移至答案
标签: go