2023校招4399面试

2023-11-10

4399效率很高,笔试完第二天就面试了,腾讯会议面试的;
表现比较拉跨。。
1.自我介绍


2.为什么做这个web服务器这个项目
当时说的是想学以致用一下,现在想想说具体什么作用更好吧。
3.项目中一些难点
线程池
4.几种io多路复用的实现方式以及它们的区别

io多路复用API都是同步的
5种io模型:
1.阻塞
调用了某个函数/API,会不停去检测是否有返回值,并且会一直等待返回值的出现,只有得到结果才会进行下一步操作
在这里插入图片描述

2.非阻塞
每隔一段时间检测是否就绪,若未就绪会去做其他事情。
每一次检测都会得到返回结果,接收到eagain,就会去干其他事情
同步IO:最后还是用户去搬运数据在这里插入图片描述
3.io多路复用(用几种模型来实现这个过程)
select
poll
epoll
关键是可以实现阻塞多个io操作
在这里插入图片描述4.信号驱动
在这里插入图片描述

5.异步io模型
在这里插入图片描述

select、poll、epoll
select:
为什么 select 慢
在第一次所有监听都没有事件时,调用 select 都需要把进程挂到所有监听的文件描述符一次。

有事件到来时,不知道是哪些文件描述符有数据可以读写,需要把所有的文件描述符都轮询一遍才能知道。

poll:
select() 和 poll() 系统调用的本质一样,poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量过大后性能也是会下降)。poll() 和 select() 同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。

epoll:
epoll: 使用了内核文件级别的回调机制O(1)
epoll相比前两种主要是对内核和用户空间文件描述符的复制过程做了优化,另外就是减少了遍历开销,epoll底层用红黑树实现,检索更加高效。
epoll是O1的增长。
水平触发(level-triggered)
socket接收缓冲区不为空 有数据可读 读事件一直触发
socket发送缓冲区不满 可以继续写入数据 写事件一直触发
边沿触发(edge-triggered)
socket的接收缓冲区状态变化时触发读事件,即空的接收缓冲区刚接收到数据时触发读事件
socket的发送缓冲区状态变化时触发写事件,即满的缓冲区刚空出空间时触发读事件
边沿触发仅触发一次,水平触发会一直触发。
5.get、post底层实现机制
在我大万维网世界中,TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象。但是如果路上跑的全是看起来一模一样的汽车,那这个世界看起来是一团混乱,送急件的汽车可能被前面满载货物的汽车拦堵在路上,整个交通系统一定会瘫痪。为了避免这种情况发生,交通规则HTTP诞生了。HTTP给汽车运输设定了好几个服务类别,有GET, POST, PUT, DELETE等等,HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上(url中)以方便记录。如果是POST请求,就要在车上贴上POST的标签,并把货物放在车厢里。当然,你也可以在GET的时候往车厢内偷偷藏点货物,但是这是很不光彩;也可以在POST的时候在车顶上也放一些数据,让人觉得傻乎乎的。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。
6.介绍第二个项目
第二个项目没什么问头,直接寄
7.对游戏开发有了解吗
8.想做后端还是前端
9.反问环节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023校招4399面试 的相关文章

随机推荐

  • Spring Cloud配置(四)熔断器

    在Spring Cloud中使用了Hystrix 来实现断路器的功能 Hystrix是Netflix开源的微服务框架套件之一 该框架目标在于通过控制那些访问远程系统 服务和第三方库的节点 从而对延迟和故障提供更强大的容错能力 Hystrix
  • 这些lodash方法真香!!

    前言 Lodash 是一个一致性 模块化 高性能的 JavaScript 实用工具库 Lodash官网 Lodash 通过降低 array number objects string 等等的使用难度从而让 JavaScript 变得更简单
  • Asp.net读取AD域信息的方法<转>

    1 首先新建一个页面 Login aspx 前台代码 Login aspx
  • 怎么解决kafka的数据丢失

    producer端 宏观上看保证数据的可靠安全性 肯定是依据分区数做好数据备份 设立副本数 broker端 topic设置多分区 分区自适应所在机器 为了让各分区均匀分布在所在的broker中 分区数要大于broker数 分区是kafka进
  • 理解gradle和gradlew

    前言 最近在跑grpc官方示例程序的时候 用到了在命令行中使用gradle编译生成代码 对gradle和gradlew做了一些了解 gradle 现在android项目普遍使用androidstudio进行开发 项目的构建和编译都用到了gr
  • MultiValueMap是什么?怎么使用?

    MultiValueMap 可以同一个key下面放多个value 此类来自spring 在spring core里面 代码 public static void main String args MultiValueMap
  • arma模型平稳性和可逆性的条件_时间序列预测模型ARIMA实现

    前段时间整理了一个预测的基本思考框架和常见的方法 其中提到了ARIMA模型 在 大数据预测 那本书里 ARIMA是单独开辟一章讲的 比较复杂和难理解的一个模型 自己最近找了点资料粗浅学习了一下理论 并尝试用Python实现一下 一 时间序列
  • 解决Android Studio运行时报Error:java.lang.NullPointerException (no error message)错误

    今天遇到一个问题 电脑突然关机了 然后重启电脑打开Android studio时 运行程序跑不起来 然后报 Gradle tasks Error Error java lang NullPointerException no error m
  • 【C++】string类的使用

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 string 1 string的介绍 2 为什么str
  • 修改Nuget缓存包下载路径

    一 打开NuGet config文件 该文件通常在C Users Username AppData Roaming NuGet下 二 添加设置 添加设置 value值设置为自己想要的路径
  • 腾讯、阿里入选首批“双柜台证券”,港股市场迎盛夏升温?

    6月5日 香港交易所发布公告 将于6月19日在香港证券市场推出 港币 人民币双柜台模式 当日确定有21只证券指定为双柜台证券 同时 港交所还表示 在双柜台模式推出前 更多证券或会被接纳并加入双柜台证券名单 港股研究社了解到 首批21只证券包
  • 二叉树(链式存储)基本操作

    目录 1 二叉树链式存储的结构体定义 2 询问法创建二叉树 3 补空法创建二叉树 4 访问结点 5 先序遍历二叉树 根左右 6 中序遍历二叉树 左根右 7 后序遍历二叉树 左右根 8 层序遍历二叉树 按照层次从左到右依次遍历 代码部分 运行
  • 定位相关论文阅读:神经惯性定位(二)Neural Inertial Localization

    如果您对这个论文不太了解 想从总体上先了解这个论文的情况 可以前往Neural Inertial Localization论文简述 快速预览 0 Abstract 0 1 逐句翻译 0 2 总结 1 Introduction 1 1逐句翻译
  • flutter 实现底部tabBar 页面跳转效果

    效果图如下 点击底部tabBar切换页面 代码如下 主页面底部tabbar import package app ftr pages DyPage dart import package flutter material dart impo
  • keil仿真点击三次运行才开始运行

    可能造成该问题的原因 使用了printf函数 未勾选微库编译 使用了仿真器供电 可能有效的解决方法 不适用printf函数 勾选微库编译 使用外部电源供电
  • 基于CNN-LSTM模型: 用EEG自动诊断精神分裂症

    精神分裂症 SZ 会阻碍大脑发育 严重损害思想 情感表达以及对现实的感知 大多数研究表明大脑结构和功能异常会产生很大影响 不过目前导致SZ的原因仍不明确 据世界卫生组织报告 全世界近2100万人患有这种脑部疾病 开始受该疾病影响的平均年龄是
  • 排序--插入排序--(直接插入排序、希尔排序)

    文章目录 直接插入排序 希尔排序 直接插入排序 将一段有序数组 插入一个数 重新使它有序 最坏时间复杂度O N 2 逆序 最好时间复杂度O N 顺序有序 空间复杂度O 1 void InsertSort int a int n 0 end
  • Vue 中防止用户频繁点击按钮的优秀实践

    系列文章目录 文章目录 系列文章目录 前言 一 为什么要防止用户频繁点击按钮 二 优秀的防止用户频繁点击按钮的实践方法 1 禁用按钮 2 添加防抖函数 3 添加节流函数 总结 前言 在 Vue 开发中 我们常常会遇到用户频繁点击按钮的问题
  • 【Java笔记+踩坑】SpringBoot基础2——运维实用

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud SpringCloudAlibaba 黑马旅游 谷粒商城 目录 1 SpringBoot程序的打包与运行回顾 1
  • 2023校招4399面试

    4399效率很高 笔试完第二天就面试了 腾讯会议面试的 表现比较拉跨 1 自我介绍 2 为什么做这个web服务器这个项目 当时说的是想学以致用一下 现在想想说具体什么作用更好吧 3 项目中一些难点 线程池 4 几种io多路复用的实现方式以及