作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在试验 go routines。
我有一个 go routine 函数执行了 x 次,我想等待所有这些例程在我的 main 函数中继续。我尝试使用 chan 作为屏障。
我试过类似的东西:
func goroutine(i int, ch []chan bool) {
//do stuff
ch[i] <- true
}
func main() {
var ch []chan bool
for i := 0; i < nb; i++ {
ch[i] = make(chan bool)
go goroutine(i, ch)
}
// wait to continue
for i := 0; i < nb; i++ {
<- ch[i]
}
}
我有以下错误:panic: runtime error: index out of range
for the line ch[i] = make(chan bool)
第一个问题:
第二个问题:
最佳答案
如果您只想等待 goroutine 完成并且不需要通过 channel 返回结果,那么 sync.WaitGroup
将是一个更简洁的解决方案。可行的方法是:
wg.Add(1)
并将指向 wg 的指针传递给 goroutine。wg.Done()
wg.Wait()
关于go - 多个go例程的一个障碍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50052010/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!