自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 epoll是同步还是异步的、QPS与TPS

2.TPS ”Transactions Per Second“ 每秒事务数,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。1.QPS “Queries Per Second” 每秒查询率。2.从消息处理层面,epoll是异步的。1.IO层面,epoll是同步的。

2023-04-11 20:48:30 498

原创 五种IO模型

*3.IO复用:**多路IO共同用一个同步阻塞接口,此时阻塞发生在select或者poll的系统调用上,而不是阻塞在实际的IO系统调用上。😗*应用进程调用IO操作导致该进程进入阻塞状态之后,该IO调用返回一个错误。一般情况下,应用进程需要利用轮询的方式来检测某个操作是否就绪。**5.异步IO:**应用进程通知内核开始一个异步IO操作,并让内核在整个操作完成后通知应用进程。**4.信号驱动IO:**注册一个IO信号事件,在数据可操作时通过信号通知线程。

2023-04-11 20:28:30 77

原创 proactor和reactor模式

1.Reactor是非阻塞同步网络模式,感知的是就绪可读写事件。每次感知到有I/O事件发生后,需要进程主动调用read方法完成数据读取,也就是要应用进程主动将socket接收缓存中的数据读到应用进程内存中。这个过程是同步的,读取完数据后应用进程才能处理数据。2.Proactor是异步网络模式,感知的是已完成的读写事件。在发起异步读写请求时,需要传入数据缓冲区的地址等信息,这样系统内核才自动帮我们把数据的读写工作完成,读写工作全程由操作系统完成。

2023-04-11 20:10:47 231

原创 http和https的区别

1.安全性:http是超文本传输协议,信息是明文传输,存在安全风险的问题。https在tcp和http之间加入了SSL/TLS安全协议,报文可以加密传输。2.连接步骤:tcp三次握手后可以进行http报文传输,https还需进行SSL/TLS的握手过程,才可以进行传输。3.速度、资源:http速度快,使用资源少,https速度慢,使用资源多。4.端口号:http端口号80,https端口号443;https需要向ca申请数字证书保证服务器身份可信。

2023-04-11 16:17:13 54

原创 什么时候用tcp什么时候用udp

对于文件传输远程终端这些来说是不允许数据丢失的。4.远程终端接入(telnet)3.包量较少的通信(dns等)3.电子邮件(smtp)1.万维网(http)2.文件传输(ftp)

2023-04-11 16:04:58 46

原创 TCP三次握手;两次握手可以吗?

如果只有「两次握⼿」,当客户端的 SYN 请求连接在⽹络中阻塞,客户端没有接收到 ACK 报⽂,就会重新发送 SYN ,由于没有第三次握⼿,服务器不清楚客户端是否收到了自己发送的建⽴连接的 ACK 确认信号,所以每收到⼀个 SYN 就只能先主动建⽴⼀个连接,如果客户端的 SYN 阻塞了,重复发送多次 SYN 报⽂,那么服务器在收到请求后就会建⽴多个冗余的⽆效链接,造成不必要的资源浪费。(SYN=1,ACK=1),确认号 为 ack = x + 1,同时选择⼀个随机数 seq = y 作为 初始序列号。

2023-04-11 16:02:03 81 1

原创 你输入网址后到页面显示出来,中间发生了什么?

2.浏览器根据解析到的IP地址向web服务器发送一个http请求。6.页面显示完成后,浏览器发送异步请求。5.浏览器对该响应进行解码,渲染演示。1.浏览器找到该域名的IP地址。3.服务器收到请求并进行处理。4.服务器返回一个相应。

2023-04-11 15:38:57 40

原创 OSI七层模型

总结:物(物理层)、数(数据链路层)、网(网络层)、传(传输层)、会(会话层)、表(表示层)、应(应用层)传输协议有FTP、HTTP、Telnet、DNS等。传输协议有IP、ICMP、ARP、RARP等。传输协议包括IEEE802.1A等。负责数据压缩解压缩,加密解密。传输协议有TCP、UDP等。传输协议有MAC等。传输协议有SMTP等。

2023-04-11 15:27:06 31

原创 Linux指令

【代码】Linux指令。

2023-04-11 15:17:58 24

原创 进程间的通信⽅式

如果信号被进程设置为阻塞,则该信号的传递被延迟,知道其阻塞被取消时传递给进程。消息队列中的消息是一个具有特定格式的数据块。信号量是一种特殊的变量,对它的操作都是原子的,有两种操作:V(signal())和P(wait()), v操作会增加信号量s的数值,p会减少它。管道是一种半双工的通信方式,数据只能单向流动,如果要双向流动,需要建立两个管道。不同的计算机的进程之间通过 socket 通信,也可⽤于同⼀台计算机的不同进程。⽹络层通过主机地址将其发到⽬的主机,⽬的主机通过端口号发给对应进程。

2023-04-11 14:59:35 68

原创 ++i、i++、i+=1、i=i+1的区别

++i、i++、i+=1、i=i+1的区别i++ : i先创建一个自身的副本,然后i自增1,最后返回副本的值。++i :将i自增1并返回i;i += 1: 相当于++ii = i + 1 ;右值i和1做相加操作,形成一个副本赋给i

2023-04-11 14:32:40 1360

原创 进程和线程的区别

2.进程有自己的独立地址空间,每启动一个进程,系统会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,操作非常昂贵。3.线程之间通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信要以通信的方式进行(IPC)。1.进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位)。4.多进程程序更健壮,多线程程序只要一个线程死掉,整个进程就死掉了。

2023-04-11 14:24:54 54 1

原创 数组和链表的区别

数组:查找快,增删慢;链表:增删快,查找慢1.数组的内存在数组定义时分配,因此元素个数是固定的;链表结点的内存在程序执行时动态向系统申请,因此链表节点个数可按照需要动态增减;2.数组中的元素顺序关系由元素由索引体现,链表中的结点顺序关系由指针来体现;3.数组大小固定,不能动态扩展;但是链表可以进行动态增删。

2023-04-11 14:15:58 154 1

原创 什么情况下使用堆区,什么情况使用栈区?

1.与堆相比,栈不会导致内存碎片,分配效率高。函数调用过程中的参数,返回地址和局部变量都采取栈的形式存放,如果少量数据需要频繁的操作,那么在程序中动态申请少量栈内存会获得很好的性能提升。2.堆可以申请的内存大很多,与堆相比,栈的使用没那么灵活,如果分配大量的内存空间,推荐使用堆内存。

2023-04-10 22:01:04 512

原创 C++的内存结构

C++的内存结构栈区(stack) 。编译器自动分配与释放。存储局部变量和函数的参数,由高地址向低地址扩展。堆区(heap)。 程序员手动分配与释放,通过空闲链表进行连接,由低地址向高地址扩展。静态存储区。 存放全局变量和静态变量;分为全局初始化区和全局非初始化区。常量存储区。 存储常量字符串。编译器一般不分配内存,放在符号表中。程序代码区。存放函数体的二进制代码。

2023-04-10 21:48:34 52

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除