学习之前,我们先来了解一下 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。
图解
![](https://i-blog.csdnimg.cn/blog_migrate/f7e70099aaa167c8c4049454a60434de.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d19b72d4a59d1806a9d13383ff783c12.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b1559a50533f0b14739a481235c33654.png)
![](https://i-blog.csdnimg.cn/blog_migrate/69228d2e2457bac27c491dc93df3534b.png)
看了这些,你应该对这些 IO 有了新的认识了吧,那就给我个赞呗 ^_^
作者:扛麻袋的少年
来源链接:https://blog.csdn.net/lzb348110175/article/details/98941378
关注我!Java从此不迷路!