select的作用
golang 中的 select 就是用来监听和 channel 有关的 IO 操作,当 IO 操作发生时,触发相应的动作。select 只能应用于 channel 的操作,既可以用于 channel 的数据接收,也可以用于 channel 的数据发送。如果 select 的多个分支都满足条件,则会随机的选取其中一个满足条件的分支执行。
基本用法
select { case <- chan1: // 如果 chan1 成功读到数据,则进行该 case 处理语句 case chan2 <- 1: // 如果成功向 chan2 写入数据,则进行该 case 处理语句 default: // 如果上面都没有成功,则进入default处理流程 }