五种IO模型

来源:互联网 发布:ipv6根域名中国服务器 编辑:程序博客网 时间:2024/06/03 17:49

个人理解  作个笔记


IO模型分为五种


异步-同步

异步:发起请求,就可以干其它的事了,等待通知

同步:发起请求后,一直等到有结果


阻塞-非阻塞

阻塞:发起请求后,一直等到有结果

非阻塞:发起请求后,先去干其它事情,过一段时间再查看结果,如果没有结果,继续做其它的事



1.同步阻塞IO:应用请求一直等待返回结果

2.同步非阻塞IO:应用发起一堆请求,轮询每个请求的返回状态(与内核交互)

3.IO多路复用:应用将一堆请求发送,阻塞到select,当有数据准备好返回(交给内核处理) (netty使用IO多路复用模型)

4.信号驱动IO:预先告知内核,当有IO可用时,内核通知应用

5.异步IO:应用发起请求后,可以做其它的事了,等待内核将结果返回


同步非阻塞IO与IO复用区别

同步非阻塞:轮询内核查看状态,与内核交互性能下降

IO复用:将多个请求交给内核处理,速度快


下面是五种IO模型图


一、同步阻塞IO


二、同步非阻塞IO


三、IO复用


四、信号驱动IO


五、异步IO





原创粉丝点击