IO多路复用的三种实现方法

IO多路复用
定义:同时监控多个IO事件,当哪个IO事件准备就绪就执行哪个IO事件。
以此形成可以同时操作多个IO的并发行为,从而避免一个IO阻塞,造成所有IO都无法执行

IO事件准备就绪:是一种IO必然要发生的临界状态。

IO多路复用的编程实现
1.将IO设置为关注IO(注册IO)
2.将关注IO提交给内核监测
3.处理内核给我们反馈的准备就绪的IO

具体实现方案: 3种
1.select ----->windows linux unix(苹果内核)
2.poll ----->linux unix
3.epoll ----->linux unix

三种方法在select 模块中
import select
select(rlist, wlist, xlist[, timeout]) ----> (rlist, wlist, xlist)三个返回值

rs,ws,xs=select(rlist, wlist, xlist[, timeout])四个参数三个返回值
功能:用来监控IO事件,阻塞等待IO事件发生
参数:rlist 列表 存放我们监控等待处理的IO事件(不受自己控制的)
wlist 列表 存放我们要主动操作的IO事件
xlist 列表 我们要关注出错处理的IO事件
timeout 超时时间,超过一定时间则不阻塞
返回值: rs 列表 rlist 中准备就绪的IO
ws 列表 wlist 中准备就绪的IO
xs 列表 xlist 中准备就绪的IO

注意: 1.wlist中如果有IO事件则select立即会返回为ws
2.在处理IO过程中不要处理一个客户端长期占有服务端使服

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值