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使用实例

  • 相关阅读:
    一个列表如何根据另一个列表进行排序(数组的相对排序)
    汉诺塔问题
    python面向对象基础
    python爬虫
    软件开发目录规范
    python--->包
    编译python文件
    python文件的俩种用途
    python模块的搜索路径
    python 循环导入的问题
  • 原文地址:https://www.cnblogs.com/straybirds/p/5109500.html
Copyright © 2011-2022 走看看