1. 首页
  2. 主题
  3. Go问与答

go routing问题请教

Yannick · · 1467 次点击
``` package main import ( "fmt" ) func main(){ go func() { fmt.Println("在goroutine内") }() fmt.Println("在goroutine外") } ``` 问题: 1. 这里从main()入口开始,我调试看了一下,为什么不是先执行匿名函数体内的Println,再执行fmt.Println("在goroutine外"),而是反过来 ? 2. 这里并没有使用channel,为什么匿名函数会阻塞,在goroutine内不会被打印呢?
我知道了,没有打印匿名函数的"在goroutine内",是因为main函数执行太快退出了。使用等待或者信道阻塞就可以打印了。
#1
更多评论
你都没有给另一个协程运行的机会啊,它没有获得cup运行机会
#2
像这个情况,可以用chan 或者 sync.WaitGroup解决goroutine 同步问题
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中