首页 > 代码库 > LINUX五中IO模型
LINUX五中IO模型
- 阻塞IO模型
用户空间调用recvfrom命令 直到数据包到达且被复制到应用进程的缓冲区或发生错误时才返回,这个过程中 进程亦或线程一直处于等待阻塞状态。
2.非阻塞IO模型
用户空间调用内核指令recvfrom后 如果内核空间缓冲区没有数据话EWOULDBLOCK 进程反复(轮询)调用recvfrom命令调用 看有没有数据包准备好在缓冲区
3.IO复用 linux提供select/poll 进程通过将一个或多个fd传递给select或poll系统调用 阻塞在select操作上 这样select可以帮我们侦测多个FD是否处于一致状态。
4.信号驱动 首先开启套接字信号驱动I/O功能 通过调用系统sigaction执行一个信号处理函数(当系统调用立即返回 进程继续工作 不阻塞) 当数据准备好时 生成一个sigio信号,通过信号
回调通知应用程序调用recvfrom读取数据 并通知主循环函数处理数据
5.异步IO 告诉内核启动某个操作 并让内核在整个操作完成后(包括将数据从内核复制到用户自己的缓冲区)通知我们
LINUX五中IO模型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。