从I/O多路复用到Netty,还要跨过Java NIO包

本文是Netty系列第4篇

上一篇文章我们深入了解了I/O多路复用的三种实现形式,select/poll/epoll。

那Netty是使用哪种实现的I/O多路复用呢?这个问题,得从Java NIO包说起。

Netty实际上也是一个封装好的框架,它的网络I/O本质上还是使用了Java的NIO包(New IO,不是网络I/O模型的NIO,Nonblocking IO)包。所以,从网络I/O模型到Netty,我们还需要了解下Java NIO包。

本文预计阅读时间 5 分钟,将重点回答以下几个问题:

如何用Java NIO包实现一个服务端

Java NIO包如何实现I/O多路复用模型

有了Java NIO包,为什么还要封装一个Netty?

1.先来看一个Java NIO服务端的例子

上一篇文章我们已经了解了I/O多路复用的实现形式。
就是多个的进程的IO可以注册到一个复用器(selector)上,然后用一个进程调用select,select会监听所有注册进来的IO。

NIO包做了对应的实现。如下图所示。

从I/O多路复用到Netty,还要跨过Java NIO包

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjyxy.html