非阻塞IO

block阻塞:意思是进程或线程执行到某一个函数的时候,一定要等待某一个事件的发生,如果这个事件没有发生就一直等待在这里,函数不能够返回.就可以使用select来实现非阻塞,意思是进程或者线程当执行到函数式不必要等待一个事件的发生,当事件没有发生的时候,函数继续执行,
多路转接:监视文件描述符的状态,当文件发生的我感兴趣的改变时
select:以事件来操作文件描述符
poll:以文件描述符来操作事件
epoll:Linux上的特有的方言,对poll进行了分装

int select(int Maxfd+1, fd_set *readfds, fd_set *writefds,
12            fd_set *exceptfds, struct timeval *timeout);
13 /*参数列表:
  nfds:最大的文件描述符 + 1;
  readfds:需要监视的输入文件描述符集合;
  writefds:需要监视的输出文件描述符集合;
  exceptfds:需要监视的会发生异常的文件描述符集合;
  timeout:等待的超时时间,如果时间超时依然没有文件描述符状态发生变化那么就返回。设置为 0 会立即返回,设置为 NULL 则一直阻塞等待,不会超时。
  */
14 void FD_CLR(int fd, fd_set *set);//删除set中的fd
15 int  FD_ISSET(int fd, fd_set *set);//判断fd是否在set中
16 void FD_SET(int fd, fd_set *set);//添加fd到set中
17 void FD_ZERO(fd_set *set);//清空set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值