package main
import "fmt"
func main() {
go loop()
go loop()
}
func loop() {
for i := 0; i < 10; i++ {
fmt.Println(i)
}
}
这是我的代码,结果是什么都没输出;按我的理解是应该输出两边0-9的
package main
import "fmt"
func main() {
go loop()
go loop()
}
func loop() {
for i := 0; i < 10; i++ {
fmt.Println(i)
}
}
这是我的代码,结果是什么都没输出;按我的理解是应该输出两边0-9的
好歹让主go routine阻塞住不要退出呐
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()
}
2 回答1.3k 阅读
2 回答1.1k 阅读
2 回答1.1k 阅读
2 回答868 阅读
3 回答684 阅读
1k 阅读
1 回答788 阅读
Go语言的原则是当main函数运行结束后,所有正在运行的协程都会终止! 也就是说主程序就已经退出了,go后的两个function还没来得及执行,所以看不到打印。
你可以让主程序“睡”一会儿再退出,然后看看结果就明白了!