《Netty》从零开始学netty源码(六)之NioEventLoop.executor

目录

    • DefaultThreadFactory
    • ThreadPerTaskExecutor
    • ThreadExecutorMap.apply

NioEventLoop的线程池参数executor创建如下

《Netty》从零开始学netty源码(六)之NioEventLoop.executor_第1张图片

在开始分析ThreadExecutorMap.apply方法前先弄明白从NioEventLoopGroup传进来的executor是什么。
《Netty》从零开始学netty源码(六)之NioEventLoop.executor_第2张图片

NioEventLoopGroupexecutor类型为ThreadPerTaskExecutor,也就是每一个task配一条线程。

接下来我们分三小步分析NioEventLoop.executor的创建过程:

  1. DefaultThreadFactory
  2. ThreadPerTaskExecutor
  3. ThreadExecutorMap.apply

DefaultThreadFactory

DefaultThreadFactory用来创建线程,其构造过程如下
《Netty》从零开始学netty源码(六)之NioEventLoop.executor_第3张图片

DefaultThreadFactory创建线程的方法newThread如下:
《Netty》从零开始学netty源码(六)之NioEventLoop.executor_第4张图片

ThreadPerTaskExecutor

《Netty》从零开始学netty源码(六)之NioEventLoop.executor_第5张图片

ThreadExecutorMap.apply

《Netty》从零开始学netty源码(六)之NioEventLoop.executor_第6张图片

至此,NioEventLoop.executor参数创建完毕,当调用其execute方法执行任务时其本质是给其开启一个新的线程执行该任务,整个过程如下:
《Netty》从零开始学netty源码(六)之NioEventLoop.executor_第7张图片

你可能感兴趣的:(Netty,java,netty)