项目:
1、多路复用技术?
select、poll、epoll
2、有限状态机?
一种理论模型,主状态机解析HTTP报文请求行、请求头、请求体,从状态机读取一行。
3、什么是IO多路复用,和多线程模式对比
一个线程监听多个socket,处理多个请求。
多线程模式是由多个线程来进行处理事务,每新来一个请求,都需要创建一个新的线程。
C++基础:
1、智能指针?
shared_ptr、weak_ptr、unique_ptr
2、指针引用区别?
存储空间、级数、传参、初始化
3、C++中重载和重写的区别?
c++多态。重载编译过程多态,是静态多态,重写运行过程多态,是动态多态。
重载同名函数不同参数列表,重写虚函数virtual。
4、什么是虚函数,作用
用virtual修饰的基类函数,可以在派生类类进行重写,实现动态多态。
计网:
1、四次挥手?
FIN、ACK、FIN、ACK。
ESTABLISHED->FIN_WAIT1->FIN_WAIT2->TIME_WAIT(2MSL)->CLOSE。
ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSE。
2、为什么不能是三次挥手?
服务端ACK、FIN分开发。等待数据发送完毕。
3、UDP如何实现可靠传输?
应用层实现类似TCP的连接管理、拥塞窗口、流量控制功能,如QUIC。
4、QUIC特点
无队头阻塞、连接建立更快、易连接迁移
5、HTTP和HTTPS的区别
多了SSL/TLS
6、DNS及作用?
DNS是域名IP相互映射的分布式数据库,用于域名解析。
7、域名解析过程
1、本地2、根域名3、顶级域名4、授权域名
. -> .com -> qq.com -> www.qq.com ->ip
数据库:
1、索引是什么,底层实现?
一种提高查找效率的数据结果,常用底层结构是B+树、哈希表。
2、什么是B+树?
一种二叉平衡树,非叶子节点用于索引、导航,所有关键字存于叶节点,叶节点形成有序链表,支持范围查询、排序查询。
3、事务的四大特性?
ACID,原子性、一致性、隔离性、持久性
3、什么是死锁?
两个及以上进程互相等待对方释放资源而无法执行的状态。
4、产生死锁的条件
1、互斥2、请求、保持条件3、不剥夺4、环路等待
操作系统:
1、磁盘调度算法
先来先、最短寻道、电梯调度
2、进程和线程的区别
进程是资源分配基本单位,线程是CPU调度的基本单位
进程拥有独立的空间地址,线程没有,线程共享进程的一部分资源,如地址空间、全局变量,线程占有堆、栈、局部资源
进程切换上下文开销大,线程小
3、进程通信、线程通信区别
进程通信:1、管道(有名、无名)2、消息队列 3、共享内存 4、存储映射 5、信号 6、信号量 7、socket
线程通信:1、锁机制 2、条件变量 3、信号 4、信号量
标签:八股文,请求,ACK,多态,进程,线程,整理,FIN From: https://www.cnblogs.com/fei1013/p/17279100.html