为了账号安全,请及时绑定邮箱和手机立即绑定

小白,请教各位大佬!go并发的一点小疑问

小白,请教各位大佬!go并发的一点小疑问

哔哔one 2019-08-21 12:29:16
packagemainimport"fmt"funcmain(){goloop()goloop()}funcloop(){fori:=0;i
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

Go语言的原则是当main函数运行结束后,所有正在运行的协程都会终止!也就是说主程序就已经退出了,go后的两个function还没来得及执行,所以看不到打印。你可以让主程序“睡”一会儿再退出,然后看看结果就明白了!
packagemain
import(
"fmt"
"time"
)
funcmain(){
goloop()
goloop()
time.Sleep(500000)
}
funcloop(){
fori:=0;i<10;i++{
fmt.Println(i)
}
}
                            
查看完整回答
反对 回复 2019-08-21
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

好歹让主goroutine阻塞住不要退出呐
package main
import (
    "fmt"
    "sync"
)
var wg sync.WaitGroup
func main() {
    go loop()
    go loop()
    wg.Wait()
}
func loop() {
    wg.Add(1)
    for i := 0; i < 10; i++ {
        fmt.Println(i)
    }
    wg.Done()
}
                            
查看完整回答
反对 回复 2019-08-21
  • 2 回答
  • 0 关注
  • 311 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信