首页 > 代码库 > 5种IO模型
5种IO模型
1 阻塞式I/O模型:
应用进程 --> 内核 (1 没有数据就等待数据,2当数据到来的时候,内核把数据复制到用户空间)--> 应用进程
2 非阻塞式I/O模型:
应用进程 --> 内核 (1 没有数据的时候,应用进程每隔一段时间就调用一次,2当数据到来的时候,内核把数据复制到用户空间)--> 应用进程
3 I/O 复用模型:
专门设置一个进程(select进程)每隔一定时间轮询注册在它上门的IO是否有数据,如果有就通知有数据的那个进程(注册在select上面的进程)
然后有数据的那个进程--->内核(2 内核把数据复制到用户空间) -->有数据的进程
4 信号驱动模型:
应用进程-->内核(应用进程通知完内核,就去干其他事情了,当有数据到达的时候,内核信号通知应用进程,然后应用进程阻塞,内核把数据复制到用户空间,然后返回)
5 异步模型:
应用进程 -->内核(通知完内核后,应用进程就可以干其他的了,当有数据到来的时候,内核也不用通知应用进程,让应用进程阻塞,而是内核把数据复制到用户空间后才通知应用进程)
同步:内核拷贝数据的时候,应用进程是阻塞状态
异步:内核拷贝数据的时候,应用进程还在做自己的事情
阻塞,非阻塞,I/O复用,信号驱动,都是同步。最后的异步才是真正的异步。
5种IO模型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。