DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go select 用法详解:多 channel 监听、随机选择与超时控制

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

select 同时监听多个 channel 操作(发送/接收),任一就绪执行对应 case;多个同时就绪时随机选一个(公平性,避免饿死);无 case 就绪且有 default 执行 default(非阻塞尝试);无 default 则阻塞等待。应用:超时控制(case <-time.After)、多源竞争(谁先到用谁)、非阻塞收发、退出信号(select { case <-ctx.Done(): return; default: })。

下载推广海报

圈内讨论推广海报

《Go select 用法详解:多 channel 监听、随机选择与超时控制》完整推广海报
REPLIES

回复

0 条回复
暂无回复。