Go Select 关键字
Select 关键字 default case 遇到的坑
for {
select {
case <-a:
do work1
case <-b:
do work2
default:
}
}
以上select, 原来希望是可以阻塞代码直到一个channel接收到数据。
然而,加入上面default的处理方式会不满足需求, 到出现不停执行for循环, 导致CPU占用过高。
因此,无需多此一举,添加不处理任何工作的default的判断。
for {
select {
case <-a:
do work1
case <-b:
do work2
}
}