第4章并发编程channel.go这个代码,没有任何返回值?哪里有问题?
package main
import "fmt"
func Count(ch chan int) {
ch <- 1
fmt.Println("Counting")
}
func main() {
chs := make([]chan int, 10)
for i := 0; i < 10; i++ {
chs[i] = make(chan int)
go Count(chs[i])
}
for _, ch := range(chs) {
<-ch
}
}
有疑问加站长微信联系(非本文作者)

for _, ch := range(chs) { <-ch } 只是出ch,并没有打印出来 当然看不到返回值
不好意思 没仔细看
原来前面有fmt.Println("Counting")这句 你没有看到输出,是因为main函数在go Count(chs[i])执行之前就退出了,多调试几次,就会看到可能有数目不定的Counting打印出来
在程序末尾加一句 time.Sleep(1 * time.Second), 等待所有goroutine执行, 你就能看到10个Counting了