Netty线程部分源码整理

本文详细介绍了Netty框架中BossGroup和WorkerGroup的职责,NioEventLoopGroup作为事件循环组的实现,以及NioEventLoop的功能和工作原理,包括其在处理连接、I/O事件和任务队列中的角色。
摘要由CSDN通过智能技术生成

1、Netty抽象出两组线程池,BossGroup专门负责接收客户端的链接,WorkerGroup专门负责网络的读写
2、BossGroup和WorkerGroup类型都是NioEventLooGroup
3、NioEventLoogGroup相当于事件循环组,这个组中含有多个事件循环,每个事件循环是NioEventLoop

NioEventLooGroup顶级集成类是线程池,所以说他就是一个线程池的实现类。

 

4、NioEventLoopGroup可以有多个线程,即可以含有多个NioEventLoop。

NioEventLoop

NioEventLoop实现了EventLoop接口、EventExecutorGroup接口和ScheduledExecutorService接口,并继承了SingleThreadEventExecutor类,这些接口和类为其添加了丰富的功能特性。SingleThreadEventExecutor表示这是一个单个线程的线程池,而EventLoop则是一个单例的线程池,里面含有一个死循环的线程不断地监听端口、处理端口事件和处理队列事件。每个EventLoop都可以绑定多个Channel,而每个Channel始终只能由一个EventLoop来处理。
5、NioEventLoop表示一个不断循环的执行处理任务的线程,每个NioEventLoop都有一个Selector,用于监听绑定在其上的socket的网络通讯。
6、每个BossNioEventLoop循环执行的步骤有三步

1)轮询accept事件
2)处理accept事件,与client建立链接,生成NioSocketChannel,并将其注册到某个worker NioEventLoop上的Selector
3)处理任务队列的任务,即runAllTasks

7、每个Worker NioEventLoop循环执行步骤

1)轮询read,write事件
2)处理I/O事件,即read/write事件,在对应NioSocketChannel处理
3)处理任务队列的任务,即runAllTasks

8、每个Worker NioEventLoop处理业务时,会使用pipeline(管道),pipeline中包含了channel

 

 

 

 

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值