在Tour of Go网站的go 1.5发行之前的版本中,有一段代码看起来像这样。
package main
import (
"fmt"
"runtime"
)
func say(s string) {
for i := 0; i < 5; i++ {
runtime.Gosched()
fmt.Println(s)
}
}
func main() {
go say("world")
say("hello")
}
输出看起来像这样:
hello
world
hello
world
hello
world
hello
world
hello
令我困扰的是,runtime.Gosched()将其删除后,该程序不再显示“世界”。
hello
hello
hello
hello
hello
为什么会这样?如何runtime.Gosched()影响执行力?
喵喵时光机
相关分类