下面的代码运行得很好:
package main
import (
"fmt"
)
func my_func(c chan int){
fmt.Println(<-c)
}
func main(){
c := make(chan int)
go my_func(c)
c<-3
}
但是如果我改变
c<-3
到
time.Sleep(time.Second)
c<-3
我的代码不执行。
我的直觉是main在my_func完成执行之前以某种方式返回,但似乎添加暂停应该没有任何效果。我完全迷失在这个简单的例子中,这里发生了什么?
侃侃无极
相关分类