慕粉第一号
2021-08-07 18:14
func main() {
// 初始化channel
// channel在使用之前,必须进行make初始化
// 否则,它会是一个nil
ch := make(chan int)
// fmt.Println(ch)
// 输入channel
ch <- 1
// go func() {
// ch <- 1
// }()
// 输出channel
go func() {
fmt.Println(<-ch)
}()
// 关闭channel
//close(ch)
//fmt.Println(ch)
// ch <- 2
//<-ch
time.Sleep(2 * time.Second)
}
不懂你说的什么意思,你在执行ch <- 1的时候就已经被阻塞住无法继续执行了,所以下面那个goroutine都无法执行,你把上面那个goroutine放在ch<-1上面才行
Go并发之魂:Goroutine深入浅出【程序人生中的“米其林三星级”并发实战】
5499 学习 · 8 问题
相似问题