go语音之select

来源:互联网 发布:人机界面编程 编辑:程序博客网 时间:2024/05/17 00:11
    chv :=make(chanint,1)
    for {
        select {
        case chv <- 0:
        case chv <- 1:
        }
        i := <-chv
        fmt.Println("Value received:", i)
    }
上面这段代码会随机输出0或者1,为什么呢?
 
原来select在选择case分支时,如果具有多个case满足运行条件,那select会随机公平的选择一个执行。
 
 
0 0