深信服社招C++后台研发工程师面经
1、做一个自我介绍?
2、进程间通讯的几种方式的比较,看其中哪种的访问速度最快
(1)管道:速度慢,容量有限
(2)消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题。
(3)信号量:不能传递复杂消息,只能用来同步
(4)共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了一块内存的。
3、父进程使用malloc得到一块内存,子进程可以使用吗?
4、进程使用malloc分配一块100M的内存,是马上就得到这块内存了吗?
5、有一个进程突然卡死了,你是怎么定位这个问题的?
6、怎么查看CPU的占用情况?
7、某一个线程占用很大的内存,怎么解决?
8、你平时有看开源的项目吗?
9、讲一个你平时做的项目?
10、你在工作中有遇到什么技术难点吗?
11、建立网络链接时,客户端和服务器的过程?
(1)服务器创建监听socket
(2)绑定对外服务的端口号
(3)开始监听
(4)客户端连接到服务对应的端口
(5)服务器接受并为客户端产生新的socket
(6)服务端基于新socket与客户端交换数据
12、发送数据时阻塞和非阻塞的区别?
13、recv调用成功是已经正确收到数据了吗?
14、手撕代码。面试哥题霸上的原题,可以去看看:NC83 子数组最大乘积
#深信服##社招##面经##C++工程师#