![](https://img-blog.csdnimg.cn/20201013105233826.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
面试
文章平均质量分 88
题目
路上的追梦人
尽人事,听天命
展开
-
线程池的工作原理及C++实现
本文的笔记来自于b站视频的爱编程的大丙,博客链接:https://subingwen.cn/,有做了相应的补充!一、线程池的原理线程池是一种多线程处理的形式,处理过程中将任务添加到队列,任何在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件的发生),则线程池将插入另外一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段..转载 2021-08-17 18:46:12 · 1990 阅读 · 0 评论 -
面试必备-C++11新特性
本文的笔记来自于b站视频的爱编程的大丙,博客链接:https://subingwen.cn/,有做了相应的补充!一、字符串原始字面量二、指针空值类型-nullptr三、constexptr修饰常量表达式1、常量表达式函数四、使用auto进行类型自动推导一般情况下库,auto在自动推导类型在编译时期确定的,但当模板函数的返回值依赖于模板的参数时,我们依旧无法在编译代码前确定模板参数的类型,故也无从知道返回值的类型,这时我们可以使用auto。template <typen.转载 2021-08-14 19:32:53 · 1179 阅读 · 0 评论 -
一文搞懂XML、Json、Protobuf序列化协议
网络传输协议,简称为传送协议(Communications Protocol),是指计算机通信的共用语言。目前最为普遍的计算机通信为网络通信,因此“传送协议”一般是指计算机通信的传送协议,比如TCP/IP等。然而,传送协议也存在计算机的其他形式通信,例如:面向对象编程里面对象之间的通信;操作系统内不同进程之间的通信,都需要一个传送协议,以确保通信双方能够正常交流!常用的网络传输数据格式有:xml、json、protobuf等。一、为什么需要序列化和反序列? name 姓名,如:Mike...原创 2021-08-13 13:43:50 · 2776 阅读 · 1 评论 -
网易笔试-堆箱子
小易将n个棋子摆放在一张无限大的棋盘上。第i个棋子放在第x[i]行y[i]列。同一个格子允许放置多个棋子。每一次操作小易可以把一个棋子拿起并将其移动到原格子的上、下、左、右的任意一个格子中。小易想知道要让棋盘上出现有一个格子中至少有i(1 ≤ i ≤ n)个棋子所需要的最少操作次数.输入描述:输入包括三行,第一行一个整数n(1 ≤ n ≤ 50),表示棋子的个数 第二行为n个棋子的横坐标x[i](1 ≤ x[i] ≤ 10^9) 第三行为n个棋子的纵坐标y[i](1 ≤ y[i] ≤ 10^9).原创 2021-08-09 11:46:22 · 183 阅读 · 1 评论 -
为什么使用Session、Cookie、Token?
HTTP协议是无状态的服务,不会记录客户端的身份等基本信息,比如打开浏览器,访问一个网页50次和访问1次对于服务器来说没有区别。一、Session、Cookie的作用Session是客户端与服务器通讯会话跟踪的一门技术,可以使服务器与客户端保证整个通讯的会话基本信息。客户端在第一次访问服务器的时候,服务端会响应一个sessionId,并且将它存入到客户端本地的cookie中,在之后的访问会将cookie中的sessionId放入到请求头中去访问服务器,如果服务器通过这个sessionId没有.原创 2021-08-02 21:02:27 · 852 阅读 · 0 评论 -
从零开始实现TinyWebServer
从0到服务器开发——TinyWebServer前言:修改、完整注释、添加功能的项目代码:https://github.com/white0dew/WebServer它是个什么项目?——Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器。使用 线程池 + 非阻塞socket + epoll(ET和LT均实现) + 事件处理(Reactor和模拟Proactor均实现) 的并发模型 使用状态机解析HTTP请求报文,支持解析GET和POST请求 访问服务转载 2021-05-17 15:24:20 · 5957 阅读 · 0 评论 -
Tinywebserver——服务器面试题
Tinywebserver——服务器面试题在Tinywebserver这个项目最后,社长提出了一些可能的面试问题,读者学习完该项目之后可以试着回答一下,看是否究竟对这个项目了如指掌::包括项目介绍,线程池相关,并发模型相关,HTTP报文解析相关,定时器相关,日志相关,压测相关,综合能力等。我对此进行了简单的回答,如果有所纰漏请大家不吝赐教。原文地址:https://zhuanlan.zhihu.com/p/364044293项目介绍为什么要做这样一个项目?——实验室的项目偏向于机器视觉,转载 2021-05-17 15:22:51 · 6375 阅读 · 3 评论 -
深入剖析epoll的边缘触发为什么要使用非阻塞IO?
一.基本概念 我们通俗一点讲:Level_triggered(水平触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读写。如果这次没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用 epoll_wait()时,它还会通知你在上没读写完的文件描述符上继续读写,当然如果你一直不去读写,它会一直通知你!!!如果系统中有大量你不需要读写的就绪文件...原创 2021-05-02 20:59:30 · 3786 阅读 · 6 评论 -
面试官问:单机TCP的最大连接数是多少?
单服务器最大tcp连接数及调优汇总启动线程数:启动线程数=【任务执行时间/(任务执行时间-IO等待时间)】*CPU内核数最佳启动线程数和CPU内核数量成正比,和IO阻塞时间成反比。如果任务都是CPU计算型任务,那么线程数最多不超过CPU内核数,因为启动再多线程,CPU也来不及调度;相反如果是任务需要等待磁盘操作,网络响应,那么多启动线程有助于提高任务并发度,提高系统吞吐能力,改善系统性能。单机最大tcp连接数网络编程在tcp应用中,server事先在某个固定端口监听,client主动转载 2021-04-27 15:21:59 · 4381 阅读 · 1 评论 -
LeetCode-计算机网络面试突击
第一部分:协议层次以及它们的服务类型OSI 七层模型 TCP/IP 参考模型 TCP/IP 五层参考模型 OSI 模型和 TCP/IP 模型异同比较 OSI 和 TCP/IP 协议之间的对应关系 为什么 TCP/IP 去除了表示层和会话层 数据如何在各层之间传输【数据的封装过程】A OSI 七层模型面试高频指数:★★★★★OSI 模型全称为开放式通信系统互连参考模型,是国际标准化组织 ( ISO ) 提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。 OSI 将原创 2021-04-12 21:59:31 · 1790 阅读 · 3 评论 -
面试官问,浏览器输入URL地址到页面的渲染发生了什么?
浏览器输入URL地址到页面的渲染的整个过程1、客户端连接到Web服务器一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80端口)建立一个TCP套接字连接。例如,https://mp.csdn.net/console/home。2、发送HTTP请求通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据这四部分组成。3、服务器接受请求并返回HTTP响应Web服务器解析请求,定位请求资源。分析请求链接,分析凭证,分原创 2020-11-25 21:57:30 · 156 阅读 · 0 评论 -
深入理解C++之模板方法模式
/*模板方法模式概念:在一个方法中定义一个算法的骨架,然后将一些具体实现步骤延迟到子类中。模板方法使得子类可以不改变算法结构的情况下,重新定义算法中的某些步骤的实现。模板方法可以为程序员提供一种代码复用的重要技巧。因为模板方法的抽象类可以定义具体方法、抽象方法,并且该抽象方法由子类去实现。抽象类(AbstractClass):定义抽象的原语操作,具体的子类将重定义它们以实现一个算法,实现一个模板方法,定义一个算法的骨架。该模板方法不仅调用原语操作,也调用定义具体子类(ConcreteClas.原创 2020-11-11 13:57:07 · 180 阅读 · 0 评论 -
Nginx后端开发必知必会
1.Nginx的作用这个问题是入门级知识点,讨论Nginx的用处。我觉得只要几个重要的点都回答到位就可以了,可以考虑这样的一个回答:Nginx是一个高性能web服务器和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。不仅可以实现负载均衡,还可以做接口限流,缓存等功能。2.Nginx的优势点Nginx由于使用了epoll和kqueue网路I/O模型,在实际生产环境能够支撑3万左右并发连接。 Nginx内存消耗低。 Nginx跨平台,而且配置相对来说难度较低。 Nginx内置原创 2020-11-09 20:26:58 · 355 阅读 · 0 评论 -
C++面试题目及面试经验
本文作者:https://blog.csdn.net/sinat_35866463/article/details/83316487目录秋招历程C++ 基础篇:数据结构与算法篇:计网与操作系统篇 :游戏技术篇:逻辑思维篇:1.老鼠喝药的问题:2.100大小的数组放了1-99 100个数,只有一个数重复了,找出重复的那个数。3.单向链表如何判断是否成环?3.1 扩展:并指出成环的点在哪里?3.2 再扩展: 这个链表的长度是多少?4.单向链表怎...转载 2020-11-01 20:21:20 · 693 阅读 · 0 评论 -
内存映射为何能提升IO读取速率?
原创:https://blog.csdn.net/qq_37286668/article/details/107292388?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.compar.转载 2020-10-30 21:50:36 · 810 阅读 · 0 评论 -
腾讯TEG提前批C++后台开发
本文来源于:https://blog.csdn.net/qq_28584889/article/details/88649156985渣渣小硕一枚,非计算机科班出身,考研跨考到华工计算机专业。研究方向是图像处理,平时较少接触ML、DL等算法,所以3月初准备找实习的时候果断放弃了算法岗,没办法只能捡起自己以前稍稍有基础的的C++后台开发这块。大概3月9号官网投递的简历,也没有找内推,我一直以为自己已经错过提前批啦,本意就是想先把简历投了,以后估计还要做腾讯的笔试才能进入面试。结果3月16号晚..转载 2020-10-30 14:28:31 · 350 阅读 · 0 评论 -
Tcp与Http的Keep Alice区别
本文来源于:https://zhuanlan.zhihu.com/p/34052073https://www.jianshu.com/p/9fe2c140fa52什么是KeepAlive?首先,我们要明确我们谈的是TCP的 KeepAlive 还是HTTP的 Keep-Alive。TCP的KeepAlive和HTTP的Keep-Alive是完全不同的概念,不能混为一谈。实际上HTTP的KeepAlive写法是Keep-Alive,跟TCP的KeepAlive写法上也有不同。...转载 2020-10-27 21:32:14 · 415 阅读 · 0 评论 -
某大厂面试官问:你会Git工具?我怂了!
这表文章主要是用命令操作: 使用可视化软件操作:https://www.cnblogs.com/mswyf/p/9261859.html一.下载安装Git Bash 下载安装:https://www.cnblogs.com/mswyf/p/9261859.html二.注册github远程仓库的账号,这里就不多说了,输入用户名,邮箱密码注册就行 注册地址:https://github.com/三.创建新项目1. 2. 3. 4..转载 2020-10-21 14:08:21 · 362 阅读 · 0 评论 -
网络协议之视频直播核心技术讲解
网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,直播的打开时间和延迟变成了影响产品功能发展重要指标。那么,问题来了:如何实现低延迟、秒开的直播?先来看看视频直播的5个关键的流程:录制->编码->网络传输->解码->播放每个环节对于直播的延迟都会产生不同程度的影响。这里重点分析移动设备的情况。受限于技术的成熟度、硬件环境等,我们针对移动场景简单总结出直播延迟优化的4个点...转载 2020-10-15 16:04:51 · 2863 阅读 · 0 评论 -
面试-define与typedef的区别
一、#define1.简单的define定义#defineMAXTIME 1000这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反映的尤为突出。2.define的“函数定义”define可以像函数那样接受一些参数,如下#definemax(x,y) (x)>(y)?(x):(y);定义就将返回两个数中较大的那个。因为这个“函数”没有类型检查,就好像一个函数模板似...转载 2020-10-13 11:13:01 · 164 阅读 · 0 评论