zoukankan      html  css  js  c++  java
  • netty概念

    Netty的ChannelFuture
    在Netty中的所有的I/O操作都是异步执行的,这就意味着任何一个I/O操作会立刻返回,不保证在调用结束的时候操作会执行完成。因此,会返回一个ChannelFuture的实例,通过这个实例可以获取当前I/O操作的状态。ChannelFuture为完成或未完成状态。

     channel  channelhandler channelHandlerContex channelPipelin  channelEvent  

    Channel是通讯的载体
    ChannelHandler负责Channel中的逻辑处理。 
    ChannelPipeline为ChannelHandler的容器:
    一个Channel包含一个ChannelPipeline,所有ChannelHandler都会注册到ChannelPipeline中,并按顺序组织起来。

    ChannelEvent是数据或者状态的载体,例如传输的数据对应MessageEvent,状态的改变对应ChannelStateEvent

    当对Channel进行操作时,会产生一个ChannelEvent,并发送到ChannelPipeline。ChannelPipeline会选择一个ChannelHandler进行处理。这个ChannelHandler处理之后,可能会产生新的ChannelEvent,并流转到下一个ChannelHandler。

    ChannelSink万能Handler 重要方法ChannelSink.eventSunk,可以接受任意ChannelEvent。
     
     ChannelHandlerContext这个接口。
    ChannelHandlerContext保存了Handler相关的的上下文信息。
     DefaultChannelHandlerContext,则是对ChannelHandler的一个包装。一个DefaultChannelHandlerContext内部,除了包含一个ChannelHandler,还保存了"next"和"prev"两个指针,从而形成一个双向链表。

     在DefaultChannelPipeline中,我们看到的是对DefaultChannelHandlerContext的引用,而不是对ChannelHandler的直接引用。这里包含"head"和"tail"两个引用,分别指向链表的头和尾。而name2ctx则是一个按名字索引DefaultChannelHandlerContext用户的一个map,主要在按照名称删除或者添加ChannelHandler时使用。
     

    Netty那点事(一)概述
    Netty那点事(二)Netty中的buffer

    Netty那点事(三)Channel与Pipeline

    Netty那点事(四)Netty与Reactor模式

    Netty使用实例

  • 相关阅读:
    007 连接
    006 group by having
    005 运算null 排序 模糊查询 聚合函数
    004 列、distinct、between、in、null
    003 约束和关系
    002 表的概念操作
    5-04用Sql语句创建表
    5-03使用视图创建表
    5-01表达基本概念
    4-04数据库的备份与还原
  • 原文地址:https://www.cnblogs.com/straybirds/p/5109500.html
Copyright © 2011-2022 走看看