从此处的常规示例:https://gobyexample.com/goroutines,为什么不用fmt.Scanln
代码替换time.sleep(2)
代码?
如果用time.Sleep(2)
替换最后三行,则go例程不会打印任何内容。
func main() {
f("direct")
go f("goroutine")
go func(msg string) {
fmt.Println(msg)
}("going")
time.Sleep(2)
}
答案 0 :(得分:4)
time.Sleep
以time.Duration
为参数,以纳秒为单位。如果您想要秒,请使用time.Sleep(2*time.Second)
:
f("direct")
go f("goroutine")
go func(msg string) {
fmt.Println(msg)
}("going")
time.Sleep(2 * time.Second)
游乐场:http://play.golang.org/p/lgKSyAW4RO。
但是,最好使用包sync
中的频道或工具进行同步。