//代码1⃣️
func main() {
c := make(chan int)
c <- 2
//fatal error: all goroutines are asleep - deadlock!
}
//代码2⃣️
func main() {
go func() {
c := make(chan int)
c <- 3
}()
time.Sleep(time.Second * 3)
}
为什么这两段代码一个报错一个没有? 对deadlock不是很能理解
老师有说channel(<-)的调用是阻塞的,用channel 发消息另外一个函数收到消息,函数本身不是立刻被调度执行,那消息是不是立刻到达啊,