Netty启动

在开发一个服务端时并不是很难的, 甚至模式都是很相似的. 通过一个启动类ServerBootstrap将必要的参数和属性等设置好之后, 再通过一个bind方法就像一个导火索一样, 触发了Netty的启动.

NioServerSocketChannel

  • 创建
  • 初始化
  • 注册
  • 绑定

NioEventLoop

  • 创建
  • 启动
  • 执行

在执行ServerBootstrap.bind方法之前,NioEventLoop已完成创建, 但还未启动和执行. 此时在执行bind的过程中, 进行NioServerSocketChannel创建和初始化. 而所谓的注册, 有两个层面含义, 第一个含义是Netty层面将NioServerSocketChannel和NioEventLoop进行关联, 第二层注册是JDK层面将channel和selector进行关联, 而就是这个第二层注册是通过任务的形式添加到NioEventLoop的MSPC队列中. 正是由这个第一个任务便启动了NioEventLoop. 之后的绑定接口操作也是以任务的形式添加到队列中.

NioEventLoop启动之后, 便开始了最重要的执行操作. 它是一个无限循环, 在循环中主要做三件事 :

  1. 监听事件
  2. 处理事件
  3. 处理队列中任务

详细流程后续完善

微信公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值