腾讯天美后台一面(凉经)

因为本硕都是机械,项目一个是ROS机器人一个是图像分割算法。昨天接到天美的面试消息觉得很不可思议..最后面试官也说让我去投车企吧...当然凉是凉了,东西还是学习到了。(吐槽一下,面试官的话我听得不是很清楚,面的很痛苦)

流程:

自我介绍

讲项目,项目用了生产者消费者模型,且消费者比生产者慢,共享内存是哈希表。共享内存上了互斥锁。问我为什么不用消息队列...说上锁影响性能

然后问我生产者消费者模型如果进程崩溃了,在共享内存中,如果生产者消费者进程出现问题,共享内存的生命周期会怎样

虽然答对了内存还存在,但原因没说好(下面是new bing回答:在共享内存中,如果生产者和消费者进程出现问题,共享内存本身并不会自动销毁。共享内存的生命周期通常由创建它的进程控制,或者直到系统重启。如果进程异常终止,共享内存仍然存在于系统中,除非有明确的操作来释放或删除它。因此,即使生产者或消费者进程出现问题,共享内存段也会保持在系统中,直到被显式地删除)

另一个项目,C++写的ROS机器人,电脑在局域网内对机器人发指令。接着问我如果机器人接受不到命令,可能是什么原因:我回答了网络丢包,他让我大胆回答...(我不知道啊...搜了一下,如果服务器负责监听订阅的进程崩溃了,通常会有几种情况和解决方案:进程崩溃导致的TCP连接关闭:如果是服务端进程崩溃,内核会发送FIN报文,与客户端进行四次挥手,从而关闭TCP连接1。服务端主机宕机:如果服务端主机宕机,客户端可能会因为超时重传机制而断开连接。Linux系统中有一个tcp_retries2配置项,默认值是15,它控制在TCP连接建立的情况下,超时重传的最大次数1。TCP Keepalive机制:如果开启了TCP keepalive机制,即使客户端不发送数据,在一段时间后,TCP会发送探测报文来检测服务端是否存活。如果服务端无响应,经过一定次数的探测后,客户端会认为TCP连接已经死亡,并断开连接1。)

接着是c++八股,问我stl熟悉哪一个,我说了vector,unordered_set之类的,然后他问我vector自动扩容,本来以为终于能答对一题了,结果他问我vector自动扩容可能会出现的问题(现在回想起来,可能是内存的问题?这个过程可能导致性能问题,因为:内存分配和复制:每次扩容都需要分配新的内存并复制旧元素,这是一个耗时的操作。迭代器失效:扩容后,所有指向旧元素的迭代器、指针和引用都会失效。频繁扩容:如果vector频繁扩容,会导致多次内存分配和复制,影响性能。为了避免这些问题,可以采取以下措施:预留容量:如果你提前知道需要存储的元素数量,可以使用reserve()方法预先分配足够的内存。减少扩容次数:通过合理选择初始容量或使用reserve()来减少扩容的次数。)

然后就无了,最后和我说方向不太契合,15分钟结束...背了一大堆八股也没考上,感慨一下机械人没有网络编程的经验面互联网大厂真的不容易...

全部评论
面试官是不是在一个会议室里面,大桌子
点赞 回复
分享
发布于 03-12 17:24 四川
同学,考虑上海米哈游不,可看我主页看岗位,感兴趣可直接投递
点赞 回复
分享
发布于 03-16 11:25 上海
联易融
校招火热招聘中
官网直投

相关推荐

3 19 评论
分享
牛客网
牛客企业服务