斗鱼C++开发一二三面面经
几周前面了斗鱼,一直没整理,今天整理了一下面经,分享给大家。
一面
- 构造函数、析构函数调用虚函数问题
- 虚函数、构造函数、析构函数
- 元编程
- type_trait的理解
- 迭代器的作用
- 使用模板实现类型
int
判断 shared_ptr
原理和实现std::forward
的作用- C语言中变长参数的实现原理
- 为什么系统调用比普通函数调用消耗大?
- 网络协议栈的理解
- 服务器启动到接受连接的整过过程锁调用的函数
- TCP可靠性
- TIME_WAIT的作用
- Linux操作熟悉吗?
- gdb
二面
- 自我介绍
- 元编程
- 构造函数、析构函数调用虚函数问题
- 可以直接交换两个同类型对象的内存数据吗?
- c++ 11中union的变量可以为非POD类型吗?
- 右值引用的理解
- lamda表达式的实现原理,变量捕获
- enable_shared_from_this
- vector扩容策略,其他库的策略,对比
- map、unordered_map的区别、使用场景
- 口述算法思路:二叉树最长路径
- epoll水平触发好边缘触发,对应fd的处理问题(这里讨论了比较久)
- 多个进程共享一个epollfd,会有什么问题?
- 半/全连接攻击
- syn泛洪攻击、syn cookie
- CLOSE_WAIT过多,怎么处理
- 出现丢包的情况,服务端发现重复ack,在socket层面的表现是?可以通过什么函数获取到对应的信息?
- 一个进程可以打开的fd有限,到并发量很大的时候,fd耗尽了,怎么办?
- 有没有了解其他开源网络库?
- 了解协程网络库吗?
- 提问环节
三面
- 介绍项目和强项
- 自己觉得最好的项目
- 项目的线程模型
- IO线程开多少个?策略?
- 直播的过程,从主播到服务器再到用户,请设计这个过程的方案?
- 直播业务,服务器一对多(可能会上百万),服务器压力很大,设计方案?
- CDN(上一题提到CDN)原理
- 虚拟内存的作用
- 未来3-5年的规划
- 提问环节
总结
斗鱼的面试是一个下午面完的。这是我第一次连续三面的经历,只有一个感觉:太累了!
三面的体验最好,面试官最后竟然说,“感谢面试,大家相互学习”。第一次见到这么谦虚的大佬。我觉得对我来说,比较难,差点就hold不住了。
#斗鱼实习##斗鱼##C++工程师##实习##面经#