/*
这个实验程序没什么复杂的逻辑,就是在两个go routine间建个通道传数
输出确实会乱序,不过好多重复呀
这个在for循环里的gofunc有意义么?
循环里面go? go 里面 循环????
emmmmmmm
希望大家能指点一下~
*/
func main() {
out := printer()
for i := 0; i < 100; i++ {
go func() { out <- i }() // 为什么这里的i会被多次分发?
}
// go func() {
// for i := 0; i < 10; i++ {
// out <- i
// }
//}() // 这样子是顺序了,也不知道是不是并发的
time.Sleep(time.Minute)
}
func printer() chan int {
out := make(chan int)
go func() {
for {
r := <-out
fmt.Println(r)
}
}()
return out
}
/* 以下是部分输出
11
27
27
27
27
27
*/
添加回答
举报
0/150
提交
取消