当前位置: 首页 > news >正文

百度春招C++后端面经总结

这次的面经,主要都是问操作系统、网络编程、C++ 这三大方向。

能明显感觉到,C++面试和Java或者Go面试重点,Java/Go主要是问MySQL、Redis。

一、介绍一下webserver项目

  1. 服务器开始运行,创建(初始化)线程池(IO密集型,线程数n+1);

  2. 创建 epoll 对连接进行监听

  3. 监听到连接事件,调用线程池线程处理 http 请求

  4. 读取 http 请求并对其进行解析 (空格,\r\n字段提取)

  5. 返回解析结果

二、select、poll、epoll的选择

select缺点:

  1. select() 检测数量有限制,最大值通常为 1024(bit),每一个比特位对应一个监听的文件描述符

  2. fd_set被内核修改后,不可以重用,每次都需要重置

  3. 每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大

  4. 每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大(((时间复杂度是O(n))))

poll缺点:select第三四条缺点没有解决

  1. 每次调用select,都需要把**fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大

  2. 每次调用select都需要在内核遍历传递

http://www.lryc.cn/news/171570.html

相关文章:

  • 小程序开发一个多少钱啊
  • C# 随机数生成 Mersenne Twister 马特赛特旋转演算法 梅森旋转算法
  • C++进阶(二)
  • zoneinfo
  • 基于微信小程序的实验室预约管理系统设计与实现
  • 腾讯mini项目-【指标监控服务重构】2023-08-17
  • 前端需要知道的计算机网络知识----网络安全,自学网络安全,学习路线图必不可少,【282G】初级网络安全学习资源分享!
  • #循循渐进学51单片机#定时器与数码管#not.4
  • 基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(五)
  • Linux: Cache 简介
  • 常见位运算公式使用场景
  • virtualbox配置ubuntu1804虚拟机相关流程
  • 防火墙基本概念
  • 易点易动固定资产管理平台:打通BMP,实现高效流程管理与全生命周期管理
  • uniapp webview实现双向通信
  • Linux动态库
  • ESP-IDF学习——1.环境安装与hello-world
  • 【算法】二分答案
  • 阿曼市场最全开发攻略,看这一篇就够了
  • 探讨UUID和Secrets:确保唯一性与数据安全的利器
  • 06-Redis缓存高可用集群
  • LCP 18.早餐组合
  • Tomcat调优【精简版】
  • 通过NDK编译C程序运行在iMX6q开发板上
  • 【学习笔记】Java 一对一培训(2.1)Java基础语法
  • 外贸独立站哪家好?推荐的独立站建站平台?
  • 六、变量与常量
  • Fork() 函数:“父” 与 “子” 进程的交互(进程的创建)
  • JupyterNotebook设置Python环境的方法步骤
  • 腾讯云阿里云云服务器 Linux 操作系统 BT 宝塔面板快速建站教程