select 多路复用
当需要从多个管道中读取数据时,如果没有数据,可能会产生阻塞 ```go for{ // 尝试从ch1接收值 data := <-ch1 // 尝试从ch2接收值 data := <-ch2 } ``` go语言内置了select关键字,可以同时响应多个管道的操作,当某个case完成后自动退出select,当所有case执行失败后执行select语句。 ```go select { case <-chan1: // 如果chan1成功读到数据,则进行该case处理语句 case chan2 <- 1: // 如果成功向chan2写入数据,则进行该case处理语句 default: // 如果上面都没有成功,则进入default处理流程 } ```
创建时间:2023-09-13
|
最后修改:2023-12-27
|
©允许规范转载
酷酷番茄
首页
文章
友链