本人本科,1月初投的,仅仅经过不到一个星期的复习,第一次面试有点小紧张没见过大场面。所以问的时候有点上气不接下气。
虽然凉了,但还是学到了不少的宝贵经验。废话不多说,开始回顾我的菜鸟级面试~
面试的形式是电话面试,面试官还是挺负责的也比较友好耐心,看出是技术大牛。
一、万古不变的“自我介绍”:
自我介绍我有提前准备过,介绍的还行。这里根据自己的项目特点介绍就行。
二、客观知识环节
1.进程和线程的关系、线程哪些可以共享那些不可以?
》进程是操作系统资源分配和调度的基本单位,而线程是处理任务调度和执行的基本单位。两者是相互包含的关系,一个进程可以有多个线程,线程是进程的一部分,同一进程的线程共享进程的地址空间和资源,进程之间却相互独立。对于同一进程的线程可以共享的有地址空间、进程的资源和文件等等,但不能共享堆栈,全局变量可以共享,静态变量也可以共享。这里有提前复习过,算是答上来了。呼呼呼~
2.进程之间如何通信(通信方式)?
》管道、信号量、消息队列、信号、共享内存、套接字(socket),然后再分别解释一下其具体含义。完成~
3.问了一道生产者与消费者问题(如何解决生产者和消费者进程?)在c++中有什么方法可以实现进程的阻塞?
》生产者与消费者问题是操作系统里的互斥和同步的问题,算比较简单就设置信号量让其并发的运行巴拉巴拉~。第二问就想到了可能是STL中的但有点答不上来,最后面试官解释了可以使用push啥的将一个其加入阻塞队列。
4.交叉编译熟悉吗?用什么可以实现?大致过程?
》对于大的工程进行交叉编译用makefile 交叉编译,小的就可以用gcc arm 。我只回答到了后者。。。
5.对智能指针了解吗?请你设计一个方法那个解决上下游智能指针释放的问题(之前别人写过的该公司面经中都有听到过智能指针,我发现这面试一定会问)
》背景是上游有个程序会使用它但不负责其释放,也不知道下游什么时候用完?为了防止内存泄漏设计个方法由你自己管理并释放智能指针。啊?这???只了解过智能指针没有用过。。。所以答不出来
三、项目环节
1.ros相关的消息传递的大致流程?
》 ros是节点的形式开发,主要通过消息message通信,其通信主要有单向消息收发式topic、双向消息请求响应service、双向消息目标的动作action三种,先得有至少两个节点,然后对于topic通信一个节点作为发布者发布话题另外一个节点订阅。。。然后每个解释一遍。
2.ros中的编程问题?如何自己建立一个结构体?如何让一个将python编写的结构体传递给用c语言编写的节点并接收该结构体,说说其大致流程?
这里回答不太好有点慌脑子空白,python和c语言结构体的传递面试官是是要先序列化然后再反序列化的过程。。。
四、还有什么要问的吗?
我。。。凉了😅
最后,感谢让我有一次经验的积累,大概了解了面试的过程,希望下次不那么慌了。
全部评论
(3) 回帖