请教 Golang 的 goroutine 用法

这段代码执行为何没有输出?

package main

import (
    "fmt"
)

func test() {
    for i := 0; i < 9; i++ {
        fmt.Println("hello")
    }
}

func main() {
    go test()
}

总结了一下 goroutine 的基本用法
https://blog.tanteng.me/2017/...

阅读 3k
1 个回答

goroutine未来得及执行,主进程就退出了。

可以用channel来同步

func test(done chan bool) {
    for i := 0; i < 9; i++ {
        fmt.Println("hello")
    }
    done <- true
}

func main() {
    done := make(chan bool)
    
    go test(done)
    
    <- done
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题