Netty系列

文章出自博客园leesf的博客

Java NIO

Netty

1.不再显式调用 Java ByteBuffer的flip()方法
2.数据读写使用不同的索引
3.使用池
4.使用引用计数释放资源
1.当ChannelInboundHandler的实现覆盖channelRead()方法时,
它负责显式释放与池的ByteBuf实例相关联的内存,可以使用ReferenceCountUtil.release() 方法进行释放;
2.SimpleChannelInboundHandler会自动释放资源,因此无需显式释放;
3.ChannelPipeline是由一系列ChannelHandlers组成,其还提供了通过自身传播事件的方法,
当进站事件触发时,其从ChannelPipeline的头部传递到尾部,而出站事件会从右边传递到左边。
4.ChannelHandlerContext的主要功能是管理相关ChannelHandler与同一ChannelPipeline中的其他ChannelHandler的交互。
  • EventLoop和线程模型
线程模型
    1.从池中空闲链表中选取线程,然后将其分配赋予给已提交的任务。
    2.当线程完成工作时,该线程又返回至空闲链表,可再进行复用。
EventLoop
    1.由一个永不改变的线程驱动(一个EventLoop对应一个线程)
    2.任务调度,EventLoop继承ScheduledExecutorService,因此可以调用ScheduledExecutorService的所有方法。
    3.不要把长时间的任务放在执行队列中,因为它将阻止任何其他任务在同一个线程上执行。
    如果必须进行阻塞调用或执行长时间运行的任务,建议使用专用的EventExecutor。

问题

  1. Netty writeAndFlush() 流程与异步
  2. Netty版本升级血泪史之线程篇
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值