Advertisement

网络-select/poll/epoll

阅读量:
概述:

epoll和select各自都能提供多路输入/输出复用方案,在当前Linux内核中均可得到支持(epoll专为Linux设计),而select则由POSIX标准定义(大多数操作系统的实现都采用了这一方案))

select:

select原理::

该select函数监视的文件描述符分为三类:writeproc、readproc和exceptproc。当调用select函数时会阻塞。直至有就绪的文件描述符出现或超时(指定等待时间),该函数才会返回。当select函数返回后,则可通过遍历faset集合来找到所有就绪的文件描述符。

在这里插入图片描述
特点:

select如今几乎在各个平台上都能实现良好支持,
其优点之一是具备良好的跨平台特性。
然而 select 的一个明显缺点是每个进程监控的文件描述符数量有一个上限,在 linux 系统上这个上限通常是 1024。
尽管如此 通过修改内核参数或重新编译的方式可能提高这一上限 但这样做可能会降低系统的运行效率。
其机制主要体现在通过设置或检查 fd 标志位中的数据结构来进行下一步操作。

全部评论 (0)

还没有任何评论哟~