关于channel的问题

ChinaIverson · · 1769 次点击
stevewang
耶和华是我的牧者,我必不至缺乏。
你的程序应该改成: ```go func main() { var ch = make(chan int) num := 11 go func() { for i := 1; i <= num; i++ { ch <- i //fmt.Println("++", i) } close(ch) }() for ii := range ch { fmt.Println("--", ii) } fmt.Println("程序运行结束") } ``` `range ch`这个循环里,不需要再去创建goroutine,否则可能那些goroutine还没执行完,main函数就退出了。
#1
更多评论
非常感谢!困扰我半晚上的问题,被你一句话戳中要害~哈哈
#2
你可以加个 sleep 或者用 WaitGroup 感觉是 go 这个里面的东西没跑完。程序结束
#3