lau*_*ent 8 windows go goroutine
我正在用goroutines做一些测试,只是为了了解它们是如何工作的,但它们似乎根本没有运行.我做了一个非常简单的测试:
package main
import (
"fmt"
)
func test() {
fmt.Println("test")
}
func main() {
go test()
}
Run Code Online (Sandbox Code Playgroud)
我希望这打印"测试",但它根本不做任何事情,没有消息,但也没有错误.我也尝试for {}在程序结束时添加一个,以便给goroutine时间打印一些东西,但这没有帮助.
知道可能是什么问题吗?
pet*_*rSO 10
程序执行不等待调用的函数完成
等一会儿.例如,
package main
import (
"fmt"
"time"
)
func test() {
fmt.Println("test")
}
func main() {
go test()
time.Sleep(10 * time.Second)
}
Run Code Online (Sandbox Code Playgroud)
输出:
test
Run Code Online (Sandbox Code Playgroud)
我知道它得到了回答,但为了完整起见:
通道
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
}
Run Code Online (Sandbox Code Playgroud)