我在多个非缓冲通道上使用select时发现了
select {
case <- chana:
case <- chanb:
}
Run Code Online (Sandbox Code Playgroud)
即使两个通道都有数据,但在处理此选择时,如果chana和case chanb处于不平衡的调用.
package main
import (
"fmt"
_ "net/http/pprof"
"sync"
"time"
)
func main() {
chana := make(chan int)
chanb := make(chan int)
go func() {
for i := 0; i < 1000; i++ {
chana <- 100 * i
}
}()
go func() {
for i := 0; i < 1000; i++ {
chanb <- i
}
}()
time.Sleep(time.Microsecond * 300)
acount := 0
bcount := 0
wg := …Run Code Online (Sandbox Code Playgroud)