介绍
为了能够满足同时从多个通道取值的需求, go内置了select关键字.可以同时响应多个通道的操作,这样能保证业务性能最大化也就是通常说到的多路复用器,比如netty也有用到,依次轮询查看哪个管道有任务就及时优先处理.
应用举例
func main(){
ch := make(chan int, 1)
for i := 0; i < 10; i++{
select{
case x := <-ch:
fmt.Println(x)
case ch <- i:
}
}
}
为了能够满足同时从多个通道取值的需求, go内置了select关键字.可以同时响应多个通道的操作,这样能保证业务性能最大化也就是通常说到的多路复用器,比如netty也有用到,依次轮询查看哪个管道有任务就及时优先处理.
func main(){
ch := make(chan int, 1)
for i := 0; i < 10; i++{
select{
case x := <-ch:
fmt.Println(x)
case ch <- i:
}
}
}