《linux高性能服务器编程》学习笔记(三)之I/O复用,信号,定时器

来源:互联网 发布:iphone mac地址伪装 编辑:程序博客网 时间:2024/04/30 07:11

今天是个好日子!所以让我们在这大好的日子里来做点有意义的事情吧!比如说,学习,哈哈,我真是熬得一手好鸡汤.
服务器通常需要处理三类事件:I/O事件,信号和定时事件.这就是今天要开这篇文章的原因.
unix下有可用的5种I/O模型:
- 阻塞式I/O;
- 非阻塞式I/O;
- I/O复用;
- 信号驱动式I/O;
- 异步I/O;
首先,我们来聊聊I/O事件.
I/0复用:是一种能力,是一种预先告知内核的能力.,是由select和poll和epoll支持的.
select函数:官方解释是该函数允许进程指示内核等待多个事件中的任何一个发生,并只有在一个或多个事件发生或经历一段制定的时间后才唤醒它.函数原型:
int select(int maxfdp1,fd_set readset,fd_set *writeset,fd_set exceptset,const struct timeval *timeout);
描述符就绪条件,这个还有待商榷,因为我自己也还没弄明白其中的具体含义,等我搞明白了再回头更啊~~
问题:unix网络编程中p132页和p130可读到底是什么?不明白啊不明白
select的最大描述符数目早些时候是有限制的,如今允许每个进程使用无限数目的描述符(往往受限于内存总量和管理性限制).这里需要提到的一点是,增大描述符集的唯一方法是先增大FD-SETSIZE的值,再重新编译内核记住,要编译内核!
啊好无聊我要去刷题了回头再更吧我实在编不下去了啊

0 0