epoll先通过epoll_ctl()来注册一个fd(文件描述符),一旦基于某个fd就绪时,内核会
采用回调机制,迅速激活这个fd,当进程调用epoll_wait()时便得到通知。这里去掉了
遍历文件描述符的坑爹操作,而是采用监听事件回调的机制。这就是epoll的亮点。
1.1.4 IO模型之信号驱动模型
信号驱动IO不再用主动询问的方式去确认数据是否就绪,而是向内核发送一个信号
(调用sigaction的时候建立一个SIGIO的信号),然后应用用户进程可以去做别的
事,不用阻塞。当内核数据准备好后,再通过SIGIO信号通知应用进程,数据准备好
后的可读状态。
应用用户进程收到信号之后,立即调用recvfrom,去读取数据。
评论8
最新资源