【Vivo】C++岗-后端一面面经

更新一下,已完成hr面,薪酬预期25w,一周内给结果,许愿offer

本来想二面结束一起发的,但是想到早点发出来可能会对明天面试的小伙伴有帮助,就先发出来吧,顺便为明天的hr面攒点人品。
不多说,直接上面经。
1)怎么设计一个tcp模型
我答的类似于Reactor
2)用多线程还是单线程
我说一个线程负责监听文件描述符,一个线程池负责处理相应文件描述符
3)怎么监听
epoll
4)select poll epoll区别
5)LT和ET模式区别
6)阻塞和非阻塞文件描述符都可以用LT和ET吗
7)线程池用什么模型(忘了怎么问的了)
我说生产者消费者队列,解释了一下
8)操作这个队列需要加锁吗?加什么锁?
互斥锁,解释了一下。
9)线程池怎么设计
接着上面的生产者消费者队列的思路说了下应该包括哪些函数。
10)listen调用返回-1的原因可能有哪些?
不知道,瞎说的,顺便求一波答案。
11)一个大文件怎么统计单词频率?
先拆分单词,在使用hash map统计
12)追问,如果一个hash_map存不下呢?
对哈希值求余映射到多机(分组),分别进行统计
13)C++内存泄漏处理方法
先查看代码是否有未初始化的指针或者释放后没设置成null的指针,
或者使用相关库函数清理。
14)追问有哪些库函数
不知道
15)知道单例模式吗?手写单例模式。
写了双检查锁的,本来打算写完等面试官问双检查锁存在什么问题,结果写一半面试官说知道你想怎么写了,时间差不多了就先这样吧。
16)反问

差不多就是这样,去撸线程池了。

发表评论

后才能评论