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

packagemain
import"fmt"
funcmain(){
goloop()
goloop()
}
funcloop(){
fori:=0;i<10;i++{
fmt.Println(i)
}
}
这是我的代码,结果是什么都没输出;按我的理解是应该输出两边0-9的
哔哔one
浏览 314回答 2
2回答

浮云间

Go语言的原则是当main函数运行结束后,所有正在运行的协程都会终止!也就是说主程序就已经退出了,go后的两个function还没来得及执行,所以看不到打印。你可以让主程序“睡”一会儿再退出,然后看看结果就明白了!packagemainimport("fmt""time")funcmain(){goloop()goloop()time.Sleep(500000)}funcloop(){fori:=0;i

慕尼黑5688855

好歹让主goroutine阻塞住不要退出呐package mainimport (    "fmt"    "sync")var wg sync.WaitGroupfunc main() {    go loop()    go loop()    wg.Wait()}func loop() {    wg.Add(1)    for i := 0; i 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript