chv
:=
make
(
chan
int
,
1
)
for {
select {
case chv <- 0:
case chv <- 1:
}
i := <-chv
fmt.Println("Value received:", i)
}
上面这段代码会随机输出0或者1,为什么呢?
原来select在选择case分支时,如果具有多个case满足运行条件,那select会随机公平的选择一个执行。