MultithreadEventExecutorGroup
image.png-
MultithreadEventExecutorGroup
:NioEventLoopGroup构造逻辑实现类 -
NioEventLoopGroup
:是 MultithreadEventExecutorGroup 的子子类,实现了newChild(Executor var1, Object... var2)
方法,为 MultithreadEventExecutorGroup 中this.children
数组字段赋值;
即 每个child 都是一个 NioEventLoop ,每个
NioEventLoop 都维护一个 “taskQueue” 和 一个 “具体的executor”
。这个 executor 是在MultithreadEventExecutorGroup 的构造函数中传入的ThreadPerTaskExecutor
ThreadPerTaskExecutor
:单线程的executor。赋值给loop里的executor
。即,loop里的executor是单线程的,group负责查找可用的loop,相当于线程池的功能
XXexecutor
:是 Executor的实现类,用来制定具体任务执行规则,一般来说指 ”线程创建规则“
,可以启动新线程
【比如,这里的ThreadPerTaskExecutor】,也可以使用线程池
【比如 ThreadPoolExecutor 】
-
NioEventLoop
:是SingleThreadEventExecutor
的子类。
AbstractEventExecutorGroup
:实现了void execute(Runnable command);
方法
SingleThreadEventExecutord
:实现了void execute(Runnable command);
方法
SingleThreadEventExecutor
image.png- SingleThreadEventExecutor:子类
NioEventLoop
- SingleThreadEventExecutor:实现了
void execute(Runnable command);
方法。execute 方法里面使用外部传入的 executor 来创建线程
网友评论