文章
2
标签
2
分类
0
首页
归档
标签
目录
关于我
小张的宇宙快递
重新出发
首页
归档
标签
目录
关于我
重新出发
发表于
2025-04-09
|
更新于
2025-04-09
|
浏览量:
离上一次写博客已经差不多 1 年了,定个周更的目标,希望自己能坚持下来!
文章作者:
张颢宇
文章链接:
https://zhyclouds.github.io/2025/04/09/%E9%87%8D%E6%96%B0%E5%87%BA%E5%8F%91/
版权声明:
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议。转载请注明来源
小张的宇宙快递
!
下一篇
网络 IO 模型发展史
网络 IO 模型进化史整个网络 IO 模型的发展是从阻塞 IO开始、中间逐步演变成非阻塞 IO、基于非阻塞 IO 的多路复用模型。其中多路复用又是从 select 发展到 poll 最后到 epoll 形式的。 阻塞 IO就是一直等着,直到拿到数据之后才继续往下执行。客户端和服务端建立好连接之后,服务端读取客户端发送过来的数据。从 read 开始就一直等着,直到读取到数据才返回,继续往下执行。这种方式的缺点就是,一个线程只能处理一个连接。如果我想处理多个客户端的连接,就只能多开线程。虽然线程是轻量的,但是当我有很多个连接的时候,线程开销会非常大。那能不能不让 read 等待呢?能不能调用了之后让它直接返回?这就是非阻塞 IO。 非阻塞 IO首先来看一下服务端是怎么一步一步把数据给到用户态的。 客户端发送数据给服务端 网卡收到客户端发来的数据 网卡等着数据全部发过来之后,将数据拷贝到内核 内核等着数据拷贝完成后,将数据拷贝给用户态 用户态等待数据全部拷贝完成整个过程也就是 客户端 -> 网卡 -> 内核 -> 用户态。 那为了能够让 read...
评论
张颢宇
文章
2
标签
2
分类
0
Follow Me
最新文章
网络 IO 模型发展史
2025-04-17
重新出发
2025-04-09