📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
Go · 中等 · Momenta
生产者、消费者用有缓存channel通信场景,如何让生产者和消费者退出
中等
Go
🎤 Momenta
参考答案
结论:通过关闭channel或context取消信号协调退出。要点:单生产者时生产完关闭channel,消费者用for v:=range ch读至关闭后退出;多生产者需用WaitGroup等待全部完成再由独立协程关闭;需主动停止时用context.Context,生产消费协程监听ctx.Done()后停止收发;严禁向已关闭channel发送否则panic;消费者可通过ok判断通道状态。原理:Go中关闭channel后读操作立即返回零值与false,利用该语义实现安全广播退出。
题目整理自公开面经,答案由校招宝自研生成,仅供参考
🏢 Momenta 在招岗位(5 条)
系统集成工程师
上海,北京,苏州
SDK开发工程师
上海,北京,苏州
功能安全工程师
上海,北京,苏州
嵌入式软件工程师
上海,北京,苏州
基础组件研发工程师
上海,北京,苏州
查看「Momenta」企业档案与全部在招岗位 ›
🎤 Momenta 其他面试真题
共享内存的用法以及使用场景
操作系统
golang中哪些数据类型是线程安全的?
Go
map的两种扩容方式
C++
map可以寻址吗?
C++
vector处理大规模数据时的优化
C++
vector和array的区别
C++
查看「Momenta」全部面试真题 ›
📚 更多「Go」面试真题
协程如何关闭
中等
1000个 goroutine 进行 IO 处理会发生什么?
简单
多个协程读写map会怎样,什么是线程安全
中等
发给10个协程,如何打出升序的数字
简单
讲讲defer关键字
简单
结构体中的tag有什么作用
简单
开辟多个写协程向一个channel中写数据 是有序吗?
简单
切片不断append是如何给它分配内存的,具体扩容规则是怎样的
中等
查看全部「Go」真题 ›
‹ 返回面试真题库
首页
企业
考试
攻略
日报
我的