EventLoopGroup和其实现类NioEventLoopGroup
- EventLoopGroup是组EventLoop的抽象,Netty为了更好的利用多核CPU资源,一般会有多个EventLoop同时工作,每个EventLoop维护着一个Selector实例。
- EventLoopGroup提供next接口,可以从组里面按照一定规则获取其中一个EventLoop来处理任务。在Netty服务器端编程中,我们一般都需要提供两个EventLoopGroup,例如: BossEventLoopGroup和WorkerEventLoopGroup.
- 通常一个服务端口即一个ServerSocketChannel对应一Selector和一个EventLoop线程。BossEventLoop负责接收客户端的连接并将SocketChannel交给WorkerEventLoopGroup来进行IO处理
- 常用方法
- public NioEventLoopGroup(),构造方法
-
public Future<?> shutdownGracefully(),断开连接,关闭线程
操作缓冲区的工具类Unpooled
- 常用方法:
- //通过给定的数据和字符编码返回一个ByteBuf对象(类似于NIO中的ByteBuffer但有区别)
- public static ByteBuf copiedBuffer(CharSequence string, Charset charset)
- 关于ByteBuffer
- 创建时包含一个byte数组,
- 在netty的buffer中,不需要使用flip进行反转,底层维护了 readerindex和writerIndex
- 通过readerindex和writerIndex和capacity,将buffer分成三个区域
- 0---readerindex 已经读取的区域
- readerindex---writerIndex 可读的区域
- writerIndex -- capacity 可写的区域
- //通过给定的数据和字符编码返回一个ByteBuf对象(类似于NIO中的ByteBuffer但有区别)
- 举例说明Unpooled获取Netty的数据容器ByteBuf的基本使用