飞书生产力工具PC客户端开发一二三面(已挂
一面
1、上来直接介绍 muduo 网络库,具体细节
2、替换的 boost 什么依赖,any?bind?
3、epoll_wait 等待占用 CPU 吗,分几种情况?
4、线程/进程常见三个状态以及转换关系:就绪、运行、阻塞
5、线程池线程使用完了怎么办,1个 main Reactor 接受 IO 连接,3 个 sub Reactor 已经在处理 3 个相关业务了,此时如果再来一个连接如何处理?
6、其中有哪些线程同步操作,条件变量、信号量同步哪个效率高一些
7、C++ 常见容器以及对应的使用场景:序列式容器、关联式容器、无序容器、容器适配器
8、sort 函数可以排序那些容器
9、右值引用用途:主要用于避免深拷贝,效率更高,move 原理
10、智能指针相关,weak_ptr 线程安全吗?
11、算法:返回链表倒数第 k 个节点
二面
1、shared_ptr 和 weak_ptr 底层实现,lock() 是如何做到线程安全的
2、原子类型了解吗,底层是如何实现原子变量的 ++ 和 -- 操作的
3、单例模式的线程安全问题,锁+双重检测可以提高效率
4、不同平台的 IO 复用 API 了解多少
5、lambda 表达式了解吗,可以转化成函数指针吗
6、动态库和静态库了解吗,分别使用两个库编译得到可执行文件,输入「复杂参数」运行有问题吗
7、muduo 网络库作者是谁,有读过陈硕其他文章吗,C++ 读过哪些书籍
三面
1、STL 容器有哪些、vector 和 list 区别、存放 10w 条数据选择哪个容器更好一些,如何查找更加高效
2、如果有序,list 可以二分吗
3、智能指针,手撕 unique_ptr
4、类的空间布局,所占空间大小
5、项目遇到那些比较棘手的问题,如何防止内存泄漏
PS
最后三面挂了真的难受,看来真的和大厂没缘,也是自己太菜了,最后三面手撕总是细节出错,不然直接拿下了,哎😔
#24届软开秋招面试经验大赏##字节飞书客户端开发#