华橙网络-C++后端-一面-2025秋招

就面了15分钟,因为有项目是go,所以问了

  1. 你这个(Go 的)模型能讲讲吗?— 候选人:好的。Golang 的 GMP 调度模型是 Go 运行时(runtime)管理的协程调度机制。G、M、P 分别代表 goroutine(G)、OS 线程(M) 和 逻辑处理器(P)。使用 go 关键字启动一个协程后,协程会先进入工作队列并绑定到某个 P,然后由运行时把该 P 调度到具体的 M(线程) 上执行。协程切换开销小,初始栈空间也很小。
  2. 这个GMP模型和线程的关系是什么?— 候选人:Go 运行时维护 G–P–M 的绑定与调度关系:goroutine 先与 P 绑定,再由运行时把 P 绑定到 M 上运行,也就是把任务交给具体的 OS 线程执行。
  3. GC(垃圾回收)原理是什么?— 候选人:Go 的 GC 由运行时后台自动进行,主要基于三色标记法。大致步骤:STW 初始标记:从根对象开始标记为黑色,会有短暂 STW(Stop The World)。并发标记:与程序并发,从已标记对象出发递归遍历可达对象,把新发现对象标为灰色并继续处理。STW 重新标记:短暂停顿,处理剩余的灰色对象,完成标记闭包。并发清理:回收未被标记到的白色对象。
  4. 你项目里限流、熔断一般怎么实现?— 候选人:我先做流量统计,分 全站/服务/用户三种粒度,使用 Redis 以带前缀的 key 进行原子自增统计。限流使用 Go 标准库基于令牌桶的限流器,请求无法满足令牌条件时直接拦截并返回相应状态码和消息。熔断也做了(此处候选人未展开细节)。
  5. 你的“微服务架构高性能网关系统”是在实习公司里做的还是自己做的?— 候选人:主要是自己做的。
  6. 压测你是怎么做的?— 候选人:在 Linux 上用 wrk 压测:先启动管理服务,再启动网关代理服务,用 wrk 发送高并发请求,观察服务器可承载的最大请求量等指标。
  7. 你在“分布式 KV 存储”里也用了协程,协程库是 C++ 官方的吗?— 候选人:不是 C++ 官方的协程库,用的是开源脚手架来实现协程。
  8. 协程与线程(以及进程)的差别?— 候选人:协程是用户态的轻量级线程,切换在用户态完成,初始栈很小(比如 Go 协程初始栈 ~2KB)。线程是 OS 调度的最小单位,多个线程共享进程地址空间,切换涉及内核态/用户态转换,开销更大;一个线程崩溃可能影响同进程内其他线程。进程是 OS 资源分配的最小单位。

9.(追问)如何监控大量协程下的系统瓶颈或负载上限?— 候选人:主要通过日志输出 CPU/内存占用来关注。

10.(追问)在操作系统层面,用什么命令分析程序是否已到瓶颈?— 候选人:常用 top(配合管道与过滤)来关注进程/线程的系统资源占用。(候选人简要回答,未细化其它工具。)

  1. DNS 协议位于 TCP/IP 的哪一层?— 候选人:应用层。
  2. DNS 的解析过程是怎样的?— 候选人:DNS 用来把域名解析为 IP。解析流程一般先查本地缓存(浏览器、系统、路由器),都没有则向本地域名服务器查询;若本地域名服务器没有,则进入递归查询:从根 DNS → 顶级域 DNS(TLD) → 权威 DNS,得到结果后返回并缓存,最后返回给客户端。
  3. “域名解析托管”这个概念听说过吗?— 候选人:不了解(未接触)。
  4. TCP/IP 里的“流量控制”是做什么、怎么实现?— 候选人:为防止发送方发送速率超过接收方缓冲能力,通过滑动窗口机制实现流量控制。
  5. STL 常用容器:举一个你熟悉的,说说实现原理— 候选人:以 vector(动态数组)为例:底层是连续内存,支持动态扩容和基于迭代器的插入,尾部插入/弹出高效;在中间位置的插入/删除需要大量元素移动,时间复杂度 O(n)。
  6. 你还有什么想问的?— 候选人:如果能加入公司,您建议我再补充学习哪些技术?另外可能会负责哪一块业务?— 面试官:技术学习会围绕业务展开;岗位是 C++ 服务端编程,但具体方向需以校招集中安排为准。— 候选人:好的,没有其他问题了。

全部评论
c++的岗,怎么全是golang的问题
点赞 回复 分享
发布于 2025-09-28 20:51 法国

相关推荐

04-13 15:31
门头沟学院 Java
某游戏厂,面了 1h。大部分时间都是问纯八股,项目一点没问,手撕也很简单,网上搜到的面经大部分是C++八股文轰炸或者项目拷打。是不是因为一开始就对我不感兴趣所以干脆不为难我了面经如下:自我介绍游戏经历主要编程语言(我说的Java 但是岗位写的是C++/GoLang)求职方向是后端,为什么选择游戏服务器开发有Linux使用经历吗(项目部署)用过的Linux命令查看文件用什么命令,查看大文件呢?租服务器会关注服务器配置吗,如何确定这个配置能够满足项目部署的需求?会分析服务器使用情况吗(CPU、内存使用率),如何定位具体的线程资源使用情况?讲讲数组和链表结构、常用操作、时间复杂度为什么数组支持随机访问(内存连续+偏移量)讲讲栈和队列结构、区别、应用讲讲RabbitMQ如何用数组实现队列讲讲哈希,平时用过哪些哈希的数据结构哈希表的key如何获得什么是哈希冲突哈希底层原理了解吗面向对象三大特性现场写一下多态的例子讲讲平时用过的设计模式手撕反转链表、反转字符串反问的时候面试官说我可以自信一点()最后给点建议吧:纯八股 + 项目一点没问,大概率不是“不感兴趣所以不为难你”,更可能是:1,面试官习惯按固定流程走,先筛基础2,或者他觉得项目跟岗位匹配度不高,问了也白问,3,面了一个小时还给建议,说明你至少过了他的及格线。别自己加戏
查看23道真题和解析
点赞 评论 收藏
分享
04-13 09:20
已编辑
电子科技大学 C++
自我介绍 实习1. 去上一家公司实习的目的?2. 为什么离职?3. 上一家公司职场氛围和交流氛围如何?4. 上一家公司实习主要的工作背景和产出?5. 介绍一下上一家公司实习的背景和原理6-12. 实习拷打13. 上一家公司有没有 AI 提效工具?有没有 AI 培训?其他员工有没有相关的使用经验?14. 你为什么在实习开发中使用 AI 工具吗?15. 总结一下上一家公司实习你的收获是什么?16. 实习期间,你遇到最困难的一个点?你是如何解决的?项目1. Raft 项目的动机是什么?算法无闲聊1. 你转专业了吗?还是自学?2. Golang 和 C++ 哪个用得比较多?3. 面试官介绍 Golang 和 C++ 在后端和鸡架开发之间的差异...4. 能实习多久?专业其他同学的规划是读研还是就业?5. 你为什么想要就业?你不用上课吗?6. 有没有想过跨考?7. 反问总结第一次约面后,面试官临时有会,面试前 5 分钟取消会议。推迟了一天,然后又迟到 10 分钟。自我介绍完就感觉像是 KPI 面了,不过没关系,感觉还是很好为人师的面试官,反问环节直接让他帮我把从 C++ 到 Golang 学习路线规划了一下,也请教了一下应该阅读哪些书籍。
发面经攒人品
点赞 评论 收藏
分享
评论
5
13
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务