IO复用

IO复用是在阻塞IO基础上,通过某种机制同时对多个文件描述符进行监视的一种方式。

select

服务端接收到来自客户端的消息后,不立即返回,而是等待几秒钟才继续向客户端回复消息。在客户端等待服务器回复的消息时,客户端处于睡眠状态,说明write系统调用是阻塞的。

epoll

epoll_create
函数原型

1
int epoll_create(int size);

功能:创建保存epoll文件描述符的空间。这些文件描述符正是监视对象。调用epoll_create函数时创建的文件描述符保存空间称为“epoll例程”。通过参数size传递的值决定epoll例程的大小,但该值只是向操作系统的建议。也就是该值并非用来决定epoll例程的大小,而仅供操作系统参考。epoll_create创建的这块空间归操作系统管理。因此,epoll_create返回文件描述符,此文件描述法主要用于区分epoll例程。
返回值:成功时返回文件描述符,失败时返回-1。