I/O复用select函数

《UNIX网络编程第六章笔记》

1、liunx下可用的5种I/O模型:阻塞式I/O、非阻塞式I/O、I/O复用、信号驱动I/O、异步I/O

1.1、阻塞式I/O

默认情形下,所有套接字都是阻塞的,以数据报套接字为例,如图所示:


1.2、非阻塞式I/O

当一个应用进程像这样对一个非阻塞描述符循环调用recvfrom时,称之为轮询。应用进程持续轮询内核,以查看某个操作是否就绪。这么做往往消耗大量CPU时间,不过这种模型偶尔也会遇到,通常在专门提供某一种功能的系统中才有。


1.3、I/O复用模型图

使用select需要使用2个而不是单个系统调用,I/O复用还稍有劣势。不过select的优势在于可以等待多个描述符就绪,且可以继续超时等待操作。


1.4、信号驱动式I/O模型

这种模型的优势在于等待数据包到达期间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值