Netty EventLoop 组件深度解析:线程模型的核心执行者
EventLoop 是 Netty 线程模型的核心组件,负责处理 Channel 的 IO 事件和任务调度,其设计直接影响 Netty 的并发性能。本文将从 EventLoopGroup 与 EventLoop 的关系、内部实现机制到任务调度逻辑,全面解析这一组件的工作原理。
EventLoop 与 EventLoopGroup 的关系
核心定义
- EventLoop:单线程执行器,负责处理一个或多个 Channel 的 IO 事件(如连接、读写),并调度任务(普通任务、定时任务)。
- EventLoopGroup:EventLoop 的容器(线程池),提供线程管理和负载均衡功能,通过
next()方法分配 EventLoop 处理 Channel。

类比理解:
EventLoopGroup 相当于 “线程池”,EventLoop 相当于 “线程”,每个 EventLoop 绑定一个线程,负责处理分配给它的 Channel。
实例化与线程数配置
Netty 中最常用的实现是 NioEventLoopGroup(基于 Java NIO 的 Selector),其线程数配置规则:
- 默认线程数为
CPU 核心数 × 2(充分利用多核资源)。 - 可手动指定线程数(如
new NioEventLoopGroup(4)表示 4 个线程)。
1 | // 服务端:bossGroup 处理连接,workerGroup 处理 IO |







