IO操作方式
(1)阻塞等待
- 好处: 不占用cpu宝贵的时间片
- 缺点: 同一时刻只能处理一个操作, 效率低
(2)非阻塞,忙轮询
- 优点:提高了程序的执行效率
- 缺点:需要占用更多的CPU和系统资源
(3)使用IO多路转接技术 select/poll/epoll
select/poll:内核只告诉有多少个,具体是哪几个,得自己去遍历查找
epoll:内核告诉你是哪几个,不需要自己去遍历了
数据存在线性表中,调用select的时候,内核遍历线性表;调用epoll的时候,内核遍历的是红黑树。
什么是I/O多路转接技术
实质是委托内核做事情
先构造一张有关文件描述符的列表,将要监听的文件描述符添加到该表中;
然后调用一个函数,监听该表中的文件描述符,直到这些描述符表中的一个进行I/O操作时,该函数才返回;
该函数为阻塞函数
函数对文件描述符的检测操作是由内核完成的
在返回时,它告诉进程有多少(哪些)描述符要进行 I/O操作。