/* 这个实验程序没什么复杂的逻辑,就是在两个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 */
AIxer
pardon110