c := make(chan int) go func() { for i := 0; i < 10; i++ { c <- i fmt.Println("go", i) } }() for n := 0; n < 9; n++ { fmt.Println("main", <-c) }

c := make(chan int) go func() { for i := 0; i < 10; i++ { c <- i fmt.Println("go", i) } }() for n := 0; n < 9; n++ { fmt.Println("main", <-c) }
张家俊
2025年01月31日
|
浏览 89

答案是什么:这段代码将创建一个整型类型的通道c,然后启动一个 goroutine,该 goroutine 会循环10次将 i 的值发送到通道c中,并在每次发送后打印"go"和i的值。接着在主 goroutine 中循环9次从通道c中接收数据,并在每次接收后打印"main"和接收到的值。由于 goroutine 中会发送10次数据,而主 goroutine 中只接收9次,因此最终会导致通道阻塞。

我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;