多路转接IO模型---poll
创始人
2024-06-02 07:53:56
0

目录

1. 历史地位

2. 作用

3. 接口

int poll(struct pollfd *fds, nfds_t nfds, int timeout);

 3.1参数

3.2 返回值

3.3 事件结构(也就是在事件结构数组中存放的元素)

代码展示:


1. 历史地位

        跨平台不如select,性能不如epoll,比较尴尬的地位。

2. 作用

        IO多路转接能够同时等待多个文件描述符的就绪状态,换句话说,可以帮助我们同时监控多个文件描述符。

3. 接口

int poll(struct pollfd *fds, nfds_t nfds, int timeout);

 3.1参数

fds:事件结构数组,存放监控的文件描述符,关心的事件(例如关心文件的可读事件,可写事件,可读事件例如调用recv函数的话那么必须要当接收缓冲区中有内容才可以IO(IO的本质其实就是等待与读取),又例如可写事件,必须要等),真实产生的事件(是监控成功返回之后用来判断到底监控到了时候事件)。

  • nfds:描述fds数组当中有多少有效元素。也就是我们要关心在事件结构数组中的多少个元素。
  • timeout:超时事件单位s
  • >0:表示带有超时时间的等待。
  • ==0:非阻塞,需要搭配循环来使用。
  • <0:阻塞监控

3.2 返回值

  • >0∶表示多少文件描述符就绪。
  • ==O:监控超时。
  • <0∶监控出错。
  • 例如:无效的文件描述符

3.3 事件结构(也就是在事件结构数组中存放的元素)

struct pollfd {

int fd;   /* file descriptor */要监控的文件描述符。

short events;   /* requested events */关心文件描述符产生的事件: POLLIN:可读事件, POLLOUT:可写事件如果想要监控多个事件,则使用按位或的方式。 这是给poll函数看的

short revents;   /*returned events*/文件描述符真实产生的事件。可能产生POLLIN事件也可能产生POLLOUT事件,那么我们可以判断revents==POLLIN还是==POLLOUT来获取我们关心的事件。这是监控完之后给程序员看的

};

3.4 代码展示:

 我们可以看出来,加入了事件结构之后操作起来方便多了。

运行:

 

4.poll的优缺点

4.1 优点

1.提出了事件结构的方式,在给poll函数传递参数的时候,不需要分别添加到“事件集合”当中。select需要将要监控的事件添加到事件集合中,而poll这里只需要自己创建监控事件的数组,然后给其中的成员赋值。

2.事件结构数组的大小可以根据程序员自己进行定义,并没有上限的要求。select最大的可监控事件数目为1024个文件描述符。而poll这里可以自定义事件结构数组。然后对数组元素进行赋值

3.不用在监控到就绪之后,重新添加文件描述符。而select则需要每次监控之后将事件集合更新

4.2 缺点

1.不支持跨平台

2.内核也是对事件结构数组监控的时候采用轮询遍历的方式。

相关内容

热门资讯

关于危急时刻的四年级作文50... 关于危急时刻的四年级作文500字 篇一危急时刻在我们的生活中,我们常常会遇到一些危急时刻,这些时刻需...
我最敬佩的一位名人四年级作文... 我最敬佩的一位名人四年级作文 篇一我最敬佩的一位名人是李彦宏。李彦宏是中国著名的企业家,同时也是百度...
感恩老师四年级作文600字【... 篇一:感恩老师的温暖我是一名四年级的学生,今天我要写一篇关于感恩老师的作文。老师是我们成长道路上最重...
做家务的作文400字四年级作... 做家务的作文400字四年级作文20篇篇一:我喜欢做家务我是一个四年级的小学生,我喜欢做家务。每天放学...
四年级写作文买菜400字(经... 四年级写作文买菜400字 篇一:去菜市场买菜四年级的我,有一次和妈妈一起去菜市场买菜,这是我第一次亲...
四年级下册数学暑假新时空答案... 四年级下册数学暑假新时空答案 篇一在四年级下册的数学学习中,我们将继续探索数学的奥秘和应用。而暑假正...
地雷花四年级作文【最新3篇】 地雷花四年级作文 篇一地雷花地雷花是一种奇特的植物,它的花朵看起来像一颗小小的地雷。我在学校的花坛里...
我和孙悟空的一天四年级上册作... 我和孙悟空的一天四年级上册作文 篇一今天是一个特殊的日子,我竟然和孙悟空一起度过了一天!早上,我醒来...
推荐一个好地方作文四年级45... 推荐一个好地方作文四年级450字 篇一我的家乡是一个非常美丽的地方,我推荐大家来参观一下。我家乡的风...
小学的小学四年级作文500字... 小学的小学四年级作文500字 篇一我喜欢的运动我是一个活泼好动的小女孩,喜欢参加各种运动。今天我就来...
今天我当家四年级作文(推荐6... 今天我当家四年级作文 篇一我当家的一天今天,我得到了一个特殊的任务,那就是要当家一天。这是我第一次担...
跳绳比赛四年级作文(通用6篇... 跳绳比赛四年级作文 篇一跳绳比赛的经历我是一名四年级的学生,最近我们学校举办了一场跳绳比赛。这是我第...
家乡变化作文400字四年级(... 家乡变化作文400字四年级 篇一家乡变化我爱我的家乡,那是一个美丽而又宁静的地方。然而,自从几年前,...
一件高兴的事250作文四年级... 篇一:一件高兴的事今天,我要给大家讲一个让我非常高兴的事情。那天,我和妈妈一起去超市买东西。在超市里...
四年级写大自然的景色作文30... 四年级写大自然的景色作文300字 篇一大自然的美景大自然是我们共同的母亲,给予我们无尽的美景和宝贵的...
小小动物园四年级作文【精简6... 小小动物园四年级作文 篇一我参观了一个小小的动物园,里面有许多有趣的动物。首先,我看到了一只可爱的小...
小小动物园四年级作文(精简6... 小小动物园四年级作文 篇一我参观了一个小小的动物园,这是我第一次看到这么多不同种类的动物。动物园里有...
悔恨400字作文【实用3篇】 悔恨400字作文 篇一悔恨是一种深深的内心痛苦,当我们回首往事,发现自己的错误和过失时,心中不禁涌起...
我的奇思妙想四年级作文350... 我的奇思妙想四年级作文350字 篇一我曾经有一个奇思妙想,那就是创造一个可以让人们实现任何愿望的神奇...
小树长高了四年级作文【精简3... 小树长高了四年级作文 篇一四年级的时候,我们班上有一棵小树。那时候,它只有一米多高,细细的树干上长满...