这是谢大神书里的一个例子,我改成了下面这样:
package main
import (
"fmt"
)
func say(s string) {
for i := 0; i < 5; i++ {
fmt.Println(s)
}
}
func main() {
go say("world") //开一个新的Goroutines执行
for {
}
}
主线程在开辟了一个新线程之后就进入死循环,但是子线程里的Println
貌似没有输出。这是为什么?
因为目前的GO版本中,默认只使用单个CPU工作,虽然开启了gorutine,但死循环把资源占用了,rutine分配不到cpu去执行。
要想输出结果,有两种办法,1,在main中让出cpu,2,开启多核心支持。
代码示例:
希望对你有所帮助。