不会退出一直在打印1
来源:11-1 channel

慕斯5059536
2022-08-03
func chanDemo() {
c := make(chan int)
go func() {
for {
//n := <-c
//fmt.Println(n)
fmt.Println(1)
}
}()
c <- 1
c <- 2
}
请问老师,上面的代码执行函数之后,不会退出一直在打印1, 这原理应该怎么解释?
写回答
1回答
-
ccmouse
2022-08-15
这是必然的。
main运行到c<-1处,会阻塞,等待别人从c接收数据。但是上方的goroutine接收数据处被注释掉了,所以只能不断由fmt.Println(1)输出1
022022-09-14
相似问题