我有一个程序,其中有256个goroutine生成测试数据并将其发送到通道。
在程序的使用部分,我设置了一个如下选择:
select {
case c := <-theChan:
// Do some stuff with c
default:
//
}
令我惊讶的是,虽然256个goroutine不断将项目发送到通道,并且处理这些项目需要时间?该程序多次运行到default
分支中。
我想知道select
语句如何确定theChan
为空并遇到default
。