前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >select多路复用

select多路复用

作者头像
TomatoCool
发布2023-09-14 08:11:53
1230
发布2023-09-14 08:11:53
举报
文章被收录于专栏:TomatoCoolTomatoCool

当需要从多个管道中读取数据时,如果没有数据,可能会产生阻塞

代码语言:javascript
复制
for{
    //  尝试从ch1接收值
    data := <-ch1
    //  尝试从ch2接收值
    data := <-ch2
}

go语言内置了select关键字,可以同时响应多个管道的操作,当某个case完成后自动退出select,当所有case执行失败后执行select语句。

代码语言:javascript
复制
select {
    case <-chan1:
   //  如果chan1成功读到数据,则进行该case处理语句
    case chan2 <- 1:
   //  如果成功向chan2写入数据,则进行该case处理语句
    default:
   //  如果上面都没有成功,则进入default处理流程
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档