Netty学习笔记(三)Channel、EventLoop等接口一览,全是知识点请背出

Channel、EventLoop和channelfuture

  1. Channe接口:
    基本的IO操作(bind()、connect()、read()、write())依赖于底层网络传输所提供的原语。
    在这里插入图片描述

  2. EventLoop接口
    用于处理连接的生命周期中所发生的事件。
    在这里插入图片描述
    下面的内容原地请背出:

    • 一个EventLoopGroup包含一个或多个EventLoop;
    • 一个EventLoop在他的生命周期内只和一个Thread绑定;
    • 所有由EventLoop处理的IO事件都将在他专有的Thread上被处理;
    • 一个Channel在他的生命周期内只注册一个EventLoop;
    • 一个EventLoop可能会被分配给多个Channel。
  3. ChannelFuture接口:
    Netty中所有的操作都是异步的,一个操作可能不会立即返回,所以需要一种用于在之后确定其结果的方法。 ChannelFuture接口的addListenter()方法注册了一个ChannelFutureListener,以便在操作完成时得到通知。

ChannelHandler和ChannelPipeline

  1. ChannelHandler接口:
    是所有处理入站和出站数据的应用程序逻辑的容器。

  2. ChannelPipeline接口:
    当Channel被创建后,会被自动分配到它专属的pipeline中,过程如下,知识点要考的:

    • 一个ChannelInitializer的实现被注册到了ServerBootstrap中;
    • 当ChannelInitializer.nitChannel()被调用时,ChannelInitializer将在pipeline中安装一组自定义的ChannelHandler;
    • ChannelInitializer将自己从pipeline中移除。
      注:ChannelHandle的工作便是使得事件流经Pipeline,当ChannelHandler被添加到pipeline时,它会被分配一个ChannelHandlerContext,主要用于写出站数据(客户端——服务端认为是出站)。
      在这里插入图片描述
    1. 引导类
      有两种类型的引导,一种用于客户端(Bootstrap),一种用于服务器(severBootstrap),之前我们使用过了。
      在这里插入图片描述
      服务器这边:
      第一组只包含一个ServerChannel,代表服务器已经绑定到某个端口的正在监听的套接字;第二组包含所有已经创建的用来处理客户端连接的Channel。
      在这里插入图片描述
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值