io多路复用

文章介绍了I/O多路复用的概念,包括阻塞和非阻塞等待的差异,以及BIO、NIO模型的优缺点。重点讨论了select、poll和epoll在Linux下的I/O多路复用实现,强调epoll在效率上的优势。
摘要由CSDN通过智能技术生成

目录

io多路复用

io介绍

io多路图解

阻塞等待:

BIO模型

非阻塞等待:

NIO模型

多路复用

select/poll。

 epoll​编辑


io多路复用

io介绍

io输入输出都是在内存中进行的,io多路复用是放便程序对读写缓冲区是否有io申请检测

I/O 多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux 下实现 I/O 多路复用的系统调用主要有 select、poll 和 epoll。

 

io多路图解

在等待io中有两种等待方式分别对应两种模型

阻塞等待:

在程序等待io;时阻塞进程,cpu会挂起进程,等事件发生后再唤醒。

人话:假如你是一个进程在家等快递,如果快递没到你就只能睡觉,直到快递员打电话给你唤醒你去拿快递。如果你有n个快递,那就必须创建n个进程。但这会带来好处和坏处

BIO模型

使用多线程等待io,每个进程对应一个Client

 

非阻塞等待:

cpu会不断的询问中间函数的事件是否完成,造成cpu浪费。

人话:假如你是一个进程在家等快递,如果快递没到你就去干别的事情,但隔几分钟就会和快递员打电话询问快递是否到达。有n个快递打n个电话。注意,这时候你保留了所有快递员的电话号码。

NIO模型

优点:提高程序执行效率

缺点:要更多cpu和系统资源

 

 

多路复用

多路复用:将所有套接字接口给内核判断有无消息传输,程序只需要询问一次内核即可

select/poll。

多路复用就像一个快递代收员,可以帮我们代收快递。分别有select,poll,epoll

 

 epoll

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值