<分区>
我是Golang初学者,看官方spec of select当更多的通信可以进行时,我会做统一的伪随机,但是当我尝试下面的代码时
package main
import (
"fmt"
)
func main() {
// For our example we'll select across two channels.
c1 := make(chan string)
c2 := make(chan string)
go func() {
for {
c1 <- "one"
}
}()
go func() {
for {
c2 <- "two"
}
}()
for i := 0; i < 100; i++ {
select {
case msg1 := <-c1:
fmt.Println("received", msg1)
case msg2 := <-c2:
fmt.Println("received", msg2)
}
}
}
它总是打印'received two',似乎不是随机结果,所以我哪里错了?
代码可以测试here .