golang的一个问题# Programming - 葵花宝典
b*i
1 楼
上周上了一个课。老师讲了个例子
func main(){
ch:=make(chan int)
go func(c chan int){
d:=fmt.Print(d)
}
3}
会直接退出没有显示。结果演示的时候有显示。他说大部分是不会显示的,因为打印语
句很慢。
我当场就觉得他讲错了。这是因为go routine开始的时候并没有执行,然后在ch时候才转到go routine因为执行不下去了需要有变量的读出这个channel。当d取出后,
并没有进行routine转移的指令,没有yield,所以整个函数执行完后才回到原来停下来
的地方。
不知道我说的对不对。
func main(){
ch:=make(chan int)
go func(c chan int){
d:=fmt.Print(d)
}
3}
会直接退出没有显示。结果演示的时候有显示。他说大部分是不会显示的,因为打印语
句很慢。
我当场就觉得他讲错了。这是因为go routine开始的时候并没有执行,然后在ch时候才转到go routine因为执行不下去了需要有变量的读出这个channel。当d取出后,
并没有进行routine转移的指令,没有yield,所以整个函数执行完后才回到原来停下来
的地方。
不知道我说的对不对。