四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

点击上方“芋道源码”,选择“设为星标

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 8:55 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:blog.****.net/lzb348110175/article/details/98941378

四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

学习之前,我们先来了解一下IO模型:

①同步阻塞IO(Blocking IO):即传统的IO模型。

②同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。

③多路复用IO(IO Multiplexing):即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Selector和Linux中的epoll都是这种模型(Redis单线程为什么速度还那么快,就是因为用了多路复用IO和缓存操作的原因)

④异步IO(Asynchronous IO):即经典的Proactor设计模式,也称为****异步非阻塞IO****。

图解:

四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

看了这些,你应该对这些IO有了新的认识了吧,那就给我个赞呗^_^



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

已在知识星球更新源码解析如下:

四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

四图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

兄弟,一口,点个!????