百度C++上海一/二/三面面经

面试官说他很久没面试了,就没走套路,都没问太多cpp的问题。


1. 先聊项目

2. 从项目延伸出来

2.1 多线程底层实现(我不是很懂面试官想要问我什么,我就讲了pthread的一些内容)

2.2 线程池的实现方式 ,使用线程池的好处

2.3 线程通信方式,线程的锁有哪些

2.4 互斥锁 读写锁 自旋锁的介绍和应用场景

2.5 消费者生产者问题

2.6 队列的线程安全,无锁队列怎么实现

2.7 CAS ,还建议我多看看java代码


3. cpp中队列有哪些,priority_queue底层实现 ,使用场景


4. 介绍rpc,服务发现是什么,负载均衡又是啥,负载均衡算法有什么


5. vector的resize和reserve


6. redis 数据结构,底层实现,线程模型


7. 算法很简单,链表找香蕉节点


问题就记得这些了;反问,面试官说聊得一般般,他很久没面试了,因为我做的业务场景不多就只能聊聊基础😁。(要问基础那么多cpp的内容不是随便问嘛)


* * *


更新二面


1. 不聊项目


2. 线程安全理解,怎么实现,效率(问了很多线程安全的问题,一面已经问了一堆二面继续怼我)


3. map umap 数据结构, 怎么实现线程安全map (还问了java分段锁,感觉部门是做java的(明明投的是c++))


4. rehash的过程, rehash的过程中新插入的数据怎么处理


5. docker的理解


6. 线程进程协程,什么是上下文切换,线程的保存的上下文怎么保存恢复的,用户态内核态;线程和协程比较


6. c++内存分配机制,new/malloc底层


8. 虚拟内存物理内存,进程内存空间


9. 智能指针,shared_ptr是否线程安全,其底层实现,循环引用


10. page cache


11. 虚函数,多态


12. ... (想起来了再写)


13. 40亿不同数据,找到某个是否存在,内存多大


14. 设计一个能得到最大值的栈


没有手撕代码,面试官说就不撕了;反问,说重视应届生基础(感觉答的不错因为问的实在太基础了,可是没有手撕就很迷惑)



更新三面纯聊天


讲一下项目

聊看过的书

聊之前最遗憾的事情

聊驱动力

聊你的优势(你没有顶会没有acm没有非常好的实习,那么你的优势在哪?)


说我的基础中上但是还不能吊打面试官...


反问.


感觉已挂


#面经##校招##C++工程师#
全部评论
线程池的实现方式 ,使用线程池的好处。这个问题楼主 怎么回答的
1 回复
分享
发布于 2020-08-14 17:36

相关推荐

3 18 评论
分享
牛客网
牛客企业服务