请问为啥输出是4,进入的到ch里不是先进先出原则吗,我理解应该是输出是0的呀,求大神解释

XITEHIP · 2018-07-26 16:01:09 · 1147 次点击
golwei
没有永恒.
package main

import (
    "fmt"
    "time"
)

func main() {

    channelInt := make(chan int)

    for i := 0; i < 5; i++ {
        j := i
        go func(x int) {
            channelInt <- x
        }(j)
        time.Sleep(1000)
    }
    fmt.Printf("==>%d\n", <-channelInt)

}
#3
更多评论

go协程执行的顺序是不定的

#1

我跑的是0啊,你跑过了吗?理论上也是0,无缓冲的channel

#2