为什么没有时间。睡觉(2)与日常工作一起工作?

时间:2015-10-29 14:07:12

标签: go

从此处的常规示例: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)
}

1 个答案:

答案 0 :(得分:4)

time.Sleeptime.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中的频道或工具进行同步。