@Author:zxw
@Email:502513206@qq.com
目录
- Netty源码分析(一) - 线程声明周期
-
1.前言
通过前面两篇文章,已经对EventLoopGroup和EventExecutor有了大概了解,对于EventLoopGroup其模板父类的实现在
MultithreadEventExecutorGroup
,而EventExecutor的模板父类实现在SingleThreadEventExecutor
类中。所以对于不同的子类实现我们只需看那些在子类独有的东西即可,之前分析主要的不同点在于 NioEventLoopGroup中的newChild方法与之前的不同
- NioEventLoop中包含了java NIO编程的封装
接下来看看相比于之前的DefaultEventLoop
的实现有何具体不同。
2.源码分析
2.1 NioEventLoopGroup
我们知道在生成EventLoopGroup时,系统会指定group的大小根据用户指定的参数或者默认生成CPU核心数*2。在其内部有着引用
EventExecutor[] children = new EventExecutor[nThreads];
其中会调用EventLoopGroup的newChild
方法来生成子类不同的EventLoop,大概如下