Netty-0x02-NioEventLoopGroup之任务管理
1 不同任务类型的提交方式
首先体现了Executor这个抽象接口的功能,实现解耦
- 提交任务的线程只关注于提交这个动作,任务提交完,使命就结束了
- NioEventLoopGroup负责关注任务的管理和调度
- 所谓的管理就是如何在内存中组织编排任务实例
- 调度就是负责实现任务如何执行
名词(术语)约定,在Netty世界中,任务有2种
- IO任务(特指的是Socket编程涉及的网络IO)
- 其他都叫做普通任务(或者叫其他任务)
java
1 |
|
2 任务的提交
普通任务
普通任务的提交都是通过NioEventLoopGroup,它作为中间委托角色,将指令下发给NioEventLoop。
java
1 |
|
java
1 |
|
java
1 |
|
java
1 |
|
java
1 |
|
IO任务
任务的提交都是通过NioEventLoopGroup,它作为中间委托角色,将指令下发给NioEventLoop。
java
1 |
|
综上,在任务提交这件事情上,NioEventLoopGroup不进行实质性的流程处理,真正干活的是NioEventLoop这个组件。
3 总结
NioEventLoopGroup组件只开放了跟客户端交互的窗口,只负责传达提交任务的指令,后续跟任务生命周期相关的流程已经跟NioEventLoopGroup没有关系了,都是由NioEventLoop组件负责,即
- NioEventLoop负责任务的管理
- NioEventLoop负责任务的调度
- NioEventLoop负责任务的执行
Netty-0x02-NioEventLoopGroup之任务管理
https://bannirui.github.io/2023/05/10/Netty-0x02-NioEventLoopGroup之任务管理/