Netty 的 read 事件与 AUTO_READ 模式

本文深入探讨了Netty中的AbstractChannelHandlerContext.read()方法和ChannelOption.AUTO_READ选项。当AUTO_READ设为true时,Netty会在Channel Active或读完成事件后将SelectionKey加上OP_READ标志。说明ChannelHandlerContext.read()传播的是outbound事件,它使得Channel可以准备读取数据。同时解释了将AUTO_READ设为false的意义,即在不需要自动读取消息时关闭该选项,防止不必要的数据读取。
摘要由CSDN通过智能技术生成

ChannelOption.AUTO_READ 是使用 Netty 时经常用的一个设置选项。

当在 Channel 上设置 ChannelOption.AUTO_READ 为 true 时,ChannelConfig.isAutoRead() 便会返回 true。这个方法在 DefaultChannelPipeline 有两处调用。fireChannelActive()fireChannelReadComplete() 这两个方法的实现中会调用 ChannelConfig.isAutoRead()。当 ChannelConfig.isAutoRead() 返回 true 时,DefaultChannelPipeline 中的这两个方法便会执行 DefaultChannelPipeline.read() 方法,接着调用 tail.read()

public ChannelPipeline read() {
    tail.r
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值