智元机器人 社招 C++开发面经

面试过程还算正常,不过可惜自己最近忙,没有好好准备,有些问题答得比较抽象。

首先是对着简历上的过往问,包括为什么想换工作之类的,按实际回答就行了,然后是技术性问题

1.linux的一些常用命令,如果我想找工程下面是否存在某个文件怎么做(find);如果我想知道哪些文件包含了某个头文件呢(grep);如何查看某个进程的线程状态(top或者htop,不过面试官想问的不是这个,估计是想问top -H -p pid吧,当时脑抽没想起来),这个问题问完我都怀疑是不是kpi面了,从没遇到社招问这个的

2.简历上有比较多的中间件使用,数据发布帧率最大是多少,会不会出现性能不足,如何解决

3.一些项目中具体做了哪些事,没有进一步细抠细节,主要是问你做过什么,这段比较碎,问得时间比较长,基本上根据项目内容去问的

4.开始手撕。本地环境写两个题,共享屏幕

一. 实现三个线程轮流打印ABC,本质上就是条件变量控制打印顺序。写完之后问,你用了notify_all(),这里如果是A进行notify_all,那么B和C都会被唤醒,然后判断条件,实际执行的是B,那么C多唤醒了一次,怎么解决这个问题。这里我也比较蒙,平时没有太注意这一点,临时问我确实没反映过来,于是说的是用两个条件变量,然后notify_one,当然这个肯定不是标准答案。现在细想,或许是使用信号量来控制吧。

二. 用socket的api实现一个客户端和服务端的echo功能。

由于是本地文本,平时也没有专门去记结构体的成员和名字,写的时候把地址结构体成员写错了,面试官说没关系,可以写伪代码。

反正就是socket创建到read,send然后服务端包括listen,accept那一套。太久没写了还把accept的参数弄错了。

不过面试官更多的注意力在流程上,也没给我纠错。

然后问tcp的三次握手发生在哪个api调用,反正就是connect之后,accept之前。

总的来说面试难度不算大,只不过没有面经,不知道面试官套路,所以写题写得不太好。

大多数问题都是在根据简历上的内容问,也没有深入C++和linux的八股文问,不知道是不是kpi面。面试官看着是同龄人,典型的技术男,整体体验还算好,也没有特别压力(给我的感觉是,面试官可能和我方向不完全相同,所以有些技术方向完全没做考察)

全部评论
楼主,后续有说法吗
点赞 回复 分享
发布于 12-16 11:28 江苏
线程轮流打印 这个条件变量+全局变量标志位,再结合notify_one唤醒可以吧?
点赞 回复 分享
发布于 11-27 10:38 陕西
哥们,简历你怎么写的,能抹去关键信息截个图看看吗,我也在找工作,有点发愁写简历😪
点赞 回复 分享
发布于 10-26 13:34 广东

相关推荐

1. 实习项目介绍2. 学习成绩怎么样,年级排名?3. 为什么大学学习这个开发方向4. 学习时有没有看一些好的教程或博客5. kotlin调用c++的接口怎么调用6. native声明的函数是怎么对应到c++的函数7. 原生和c++间是怎么传递数据的8. java的引用类型传递给c++时内存管理是怎么样的9. c++层怎么调用java的方法10. Compose的数据驱动是怎么实现的11. 除了mutableStateOf还有其他方式可以定义状态吗12. 如果外部有一个状态传递给子控件,并且让子控件可以更改状态,改怎么做13. 除了lambda回调还有什么方式14. Compose背后对应的真正的视图,什么时候会创建什么时候会销毁,它的内存管理是怎么样的15. 一个Compose组件内有个状态,什么情况下这个状态会变为默认值(什么情况下组件会销毁重建)16. 手撕:计算视图数量手撕是原创题,大概内容是:移动端的视图层级结构是树状的,每个节点都是一个视图。每个视图都有一个isVisible 属性,表示该视图是否可见;视图间有父子关系,当父视图不可见时,其所有子视图也不可见。现给定以下结构体,请实现一个函数,计算叶子视图中可见视图的数量与不可见视图的数量:struct View {bool isVisible;View subviews[];}mid水平,如果算上没见过需要15分钟内当面思考和写出来并解释,可算得上是hard两天后约三面
点赞 评论 收藏
分享
12-19 02:15
门头沟学院 C++
1. 实习介绍2. 两段开源经历拷打,主要聊开发过程遇到的事,技术涉及较少,虽然也没什么技术,估计就是确认一下是本人干的。3. 面试官介绍自己部门不是搞数据库内核的,询问真想来吗,给面试官给予了肯定的回答。4. 开发习惯闲聊,看不看火焰图,跨语言的benchmark怎么测的巴拉巴拉。5. 正式开始拷打,汗流浃背了。简历上项目就是常规15445+tinykv,遇到一个也都做过的面试官相当正常。6. 15445 lru-k算法、crabbing 协议(还包括读写锁细节,楼主都快记不得了,头一次有面试官问这个)。7. ACID 含义(楼主顺便聊了一下CAP的C跟ACID的C区别,直接预判面试官)8. 15445 三种隔离级别(RU, RC, RR,这块楼主早忘记了,所以回答的是mysql和pg的实现细节,参考:https://gg2002.github.io/2025/03/16/mysql-latch,顺便扯了几嘴mysql为啥会有表级锁和binlog,因为mysql是一个分离式的架构巴拉巴拉)9. tinykv拷打,multi raft必要性,项目思想。10. 分布式事务Percolator跟寻常单体数据库事务的差别(楼主大败而归,说到3列,但是忘记怎么具体地写这3列)11. raft全流程介绍(leaderelection+logreplication,楼主顺便加了点行业现状试图展示知识面)12. raft脑裂问题,prevote优化介绍13. raft的Leader Lease和ReadIndex优化(更是大败而归,头一次有面试官问这个,早就忘记了,扯了几嘴思想草草而过)14. 面试官询问tinysql,楼主没做过,但楼主打过ob数据库比赛,说那个比赛sql写的多,再次跟面试官闲聊一阵15. 广告场景题,问楼主广告曝光log和点击log哪个存kv好些,楼主说点击log少些,存点击,面试官说错,然后解释16. 算法题,线程安全的LRU
点赞 评论 收藏
分享
评论
5
12
分享

创作者周榜

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