Netty重点——核心组件补充篇(十四)

本文详细介绍了EventLoopGroup在Netty中的作用,特别是NioEventLoopGroup的实现,以及BossEventLoop和WorkerEventLoop的区别。重点讲解了Unpooled的ByteBuf操作,包括其与ByteBuffer的不同以及如何高效地管理缓冲区数据。
摘要由CSDN通过智能技术生成

EventLoopGroup和其实现类NioEventLoopGroup

  1. EventLoopGroup是组EventLoop的抽象,Netty为了更好的利用多核CPU资源,一般会有多个EventLoop同时工作,每个EventLoop维护着一个Selector实例。
  2. EventLoopGroup提供next接口,可以从组里面按照一定规则获取其中一个EventLoop来处理任务。在Netty服务器端编程中,我们一般都需要提供两个EventLoopGroup,例如: BossEventLoopGroup和WorkerEventLoopGroup.
  3. 通常一个服务端口即一个ServerSocketChannel对应一Selector和一个EventLoop线程。BossEventLoop负责接收客户端的连接并将SocketChannel交给WorkerEventLoopGroup来进行IO处理
  4. 常用方法
    • public NioEventLoopGroup(),构造方法
    • public Future<?> shutdownGracefully(),断开连接,关闭线程

操作缓冲区的工具类Unpooled 

  1. 常用方法:
    • //通过给定的数据和字符编码返回一个ByteBuf对象(类似于NIO中的ByteBuffer但有区别)
      1. public static ByteBuf copiedBuffer(CharSequence string, Charset charset)
    • 关于ByteBuffer
      1. 创建时包含一个byte数组,
      2. 在netty的buffer中,不需要使用flip进行反转,底层维护了 readerindex和writerIndex
      3. 通过readerindex和writerIndex和capacity,将buffer分成三个区域
        1. 0---readerindex 已经读取的区域
        2. readerindex---writerIndex 可读的区域
        3. writerIndex -- capacity 可写的区域
  2. 举例说明Unpooled获取Netty的数据容器ByteBuf的基本使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值