简单的goroutine不能在Windows上工作

我正在做一些testing,只是为了了解它们是如何工作的,但是看起来它们并没有运行。 我做了一个非常简单的testing:

package main import ( "fmt" ) func test() { fmt.Println("test") } func main() { go test() } 

我希望这打印“testing”,但它根本不做任何事情,没有消息,但没有错误。 我也尝试在程序结尾处添加一个for {} ,以便让时间打印某些内容,但这并没有帮助。

任何想法可能是什么问题?

程序执行不会等待被调用的函数完成

去声明

稍等片刻。 例如,

 package main import ( "fmt" "time" ) func test() { fmt.Println("test") } func main() { go test() time.Sleep(10 * time.Second) } 

输出:

 test 

我知道这是回答,但为了完整:

通道

 package main import ( "fmt" ) func test(c chan int) { fmt.Println("test") // We are done here. c <- 1 } func main() { c := make(chan int) go test(c) // Wait for signal on channel c <- c }