本文是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包做了对应的实现。如下图所示。