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

Go channel 类型全解:有缓冲与无缓冲的区别与应用场景

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

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

channel 按方向:双向 chan T、只发 chan<- T、只收 <-chan T(用于函数参数限制);按缓冲:无缓冲 make(chan T) 和有缓冲 make(chan T, n)。无缓冲:发送和接收必须同时就绪,否则阻塞——实现同步握手(两个 goroutine 会合点);有缓冲:缓冲未满发送不阻塞、未空接收不阻塞——实现解耦和流量控制(类似队列)。选择:需要同步确认用无缓冲,生产消费解耦用有缓冲(合理设置容量避免死锁)。

下载推广海报

圈内讨论推广海报

《Go channel 类型全解:有缓冲与无缓冲的区别与应用场景》完整推广海报
REPLIES

回复

0 条回复
暂无回复。