注意监听的case中,没有满足条件的就阻塞多个满足条件的就任选一个执行select本身不带循环,需要外层的fodefault通常不用,会产生忙轮询break只能跳出select中的一个case加入了默认分支...,那么无论涉及通道操作的表达式是否有阻塞,select语句都不会被阻塞。...注意,即使select语句是在被唤醒时发现的这种情况,也会这样做作用go里面提供了一个关键字select,通过select可以监听channel上的数据流动select的用法与switch语言非常类似,...由select开始一个新的选择块,每个选择块条件由case语句来描述与switch语句可以选择任何可使用相等比较的条件相比,select有比较多的限制,其中最大的一条限制就是每个case语句里必须是一个...select语句后的语句中恢复如果没有default语句,那么select语句将被阻塞,直到至少有一个通信可以进行下去防止channel超时机制有时候会出现协程阻塞的情况,那么我们如何避免这个情况?