netty channel,unsafe,pipeline, handler,context

channel 代表netty内链路或通道,比如niosocketchannel就封装socketchannel,含channelConfig,含parent(如accept出来的SocketChannel其parent为ServerSocketChannel,也可为null),异步操作,返回channelFuture

channel 将具体IO操作委托给其unsafe对象,

channel 含pipeline,pipeline双向链接handler

handler :(channelHandler channelHandlerContext)

channelHandler维护处理逻辑,channelHandlerContext维护双向链接,实现事件传递

channelHandler 本身handlerAdded, handlerRemoved带handler加到或移除pipeline的callback,handler只负责自己加到pipeline需触发的逻辑
inbound IO线程触发的事件,register,unregister ,active,inactive,read(读到,带有Object ),readComplete,exceptionCaught,userEvent,WritabilityChanged
管线由headContext 不断向后寻找inbound最后传到tailContext(空实现)
outbound 用户主动发起的事件,connect,disconnect,close,bind,write,flush,read(发起读操作),管线由tailContext 不断向前寻找outbound最后传到headContext,最后交给unsafe

context 状态 init
addPending(加到pipeline,但未调用handlerAdded,我们等到对应channel注册到EventLoop后由EventLoop线程触发,多个handler的handlerAdded任务放于pipeline的单向链表内)
addComplete(handlerAdded调用了)
removeComplete

channelInitalizer 本身也是channelHandler,而且是Inbound的,其handlerAdded方法调用initChannel(我们实现,一般在内向pipeline添加自定义channelHandler),完成后将自己从pipeline移除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值