@Author:zxw
@Email:502513206@qq.com


目录

  1. Netty源码分析(一) - 线程声明周期
  2. Netty源码分析(二) - 线程组

    1.前言

    通过前面两篇文章,已经对EventLoopGroup和EventExecutor有了大概了解,对于EventLoopGroup其模板父类的实现在MultithreadEventExecutorGroup,而EventExecutor的模板父类实现在SingleThreadEventExecutor类中。所以对于不同的子类实现我们只需看那些在子类独有的东西即可,之前分析主要的不同点在于

  3. NioEventLoopGroup中的newChild方法与之前的不同

  4. NioEventLoop中包含了java NIO编程的封装

接下来看看相比于之前的DefaultEventLoop的实现有何具体不同。

2.源码分析

2.1 NioEventLoopGroup

我们知道在生成EventLoopGroup时,系统会指定group的大小根据用户指定的参数或者默认生成CPU核心数*2。在其内部有着引用

  1. EventExecutor[] children = new EventExecutor[nThreads];

其中会调用EventLoopGroup的newChild方法来生成子类不同的EventLoop,大概如下
image.png