首页 > 百度提前批C++一二三面(已通过)
头像
我要哒哒哒offer
编辑于 2020-08-03 23:27
+ 关注

百度提前批C++一二三面(已通过)

面的是搜索数据架构部门,岗位C++开发

一面

  1. 自我介绍
  2. TCP和UDP的区别
  3. TCP可靠性如何保证
  4. 网络拥塞,目的是什么,为什么不能通过预估网络带宽进行拥塞控制呢
  5. 流量控制,目的是什么
  6. TCP四次挥手
  7. time_wait作用
  8. 在一个TCP连接中,客户端到服务器链路中断,服务器到客户端还是通的,会出现什么异常状况?(TCP 的 keepalive 机制)
  9. 多线程解决了什么问题
  10. 同步非阻塞IO优点是什么?减少了阻塞时间有什么用?
  11. 在cpu拉满的情况下,linux的timefd定时会出现延时吗?如何保证没有延时的呢?(软中断,进程优先级),这个软中断是由谁发起的呢(内核)?
  12. 多线程和多进程有什么区别?进程切换和线程切换
  13. 进程间通信
  14. 多进程资源互斥
  15. 给定一个原子变量,如何实现自旋锁?
  16. 读写锁应用场景
  17. 智能指针,shared_ptr线程安全吗
算法题:
有若干个任务的执行记录,每条记录包含开始时间和终止时间。这些任务可能是并行执行的,时间上会交错。
请求出从最开始有记录到最终一条记录之间,有多长时间是完全没有任何任务在执行的。
结构:
struct Task { // 任务起始和结束时间
   int begin;
   int end;
}
接口:
// 参数:所有任务历史记录
// 返回值:中间的空洞时间总长度

二面

  1. 写代码:实现单例模式,拷贝构造函数,赋值操作符需要定义吗?static变量是什么时候初始化的?
  2. mutable,const关键字,顶层const和底层const,这里贴出一个记忆的好方法:只需要判断const是在 * 的左边还是右边即可。左边则是修饰被指物,即被指物是常量,不可以修改它的值;右边则是修饰指针,即指针是常量,不可以修改它的指向;在左右两边,则被指物和指针都是常量,都不可以修改。
  3. 写代码:删除 vector 数组中变量,主要考察迭代器失效问题
  4. 二叉搜索树,AVL树,红黑树特性
  5. 跳表
  6. multiple Reactor,Proactor
  7. 进程,线程,协程,协程有什么缺点?需要注意哪些地方?有没有看过libco库?
  8. buffer io 和 direct io
  9. linux 的read,write的系统的内核调用栈
  10. mmap,和 read,write的区别
  11. 写代码:线程安全的读写队列,保证性能(写了个阻塞模式,面试官可能更想要一个无锁队列)
  12. CAS,ABA问题
  13. 读写锁
  14. 聊了一些项目问题

三面

三面应该是经理面,没问题基础,只考了几个算法题和概率题:
  1. 寻找链表的公共节点,如何快速判断没有公共节点(一次遍历)
  2. 寻找中位数
  3. 分布式环境中,10台机器,每台机器上都有一部分数据,怎么找所有数据中的中位数
  4. 老王有两个孩子,已知其中一个是女孩,另外一个也是女孩的概率是多少?
  5. 聊未来,聊人生,聊工作
三面最后直接说了我没问题,需要在8.15号之前给他一个答复,确定去不去,现在也拿了字节意向书,比较纠结,有没有大佬给分析一下。

更多模拟面试

全部评论

(11) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐