MultithreadEventExecutorGroup
MultithreadEventExecutorGroup
:NioEventLoopGroup構(gòu)造邏輯實現(xiàn)類NioEventLoopGroup
:是 MultithreadEventExecutorGroup 的子子類,實現(xiàn)了newChild(Executor var1, Object... var2)
方法,為 MultithreadEventExecutorGroup 中this.children
數(shù)組字段賦值;
即 每個child 都是一個 NioEventLoop ,每個
NioEventLoop 都維護(hù)一個 “taskQueue” 和 一個 “具體的executor”
。這個 executor 是在MultithreadEventExecutorGroup 的構(gòu)造函數(shù)中傳入的ThreadPerTaskExecutor
ThreadPerTaskExecutor
:單線程的executor。賦值給loop里的executor
。即,loop里的executor是單線程的,group負(fù)責(zé)查找可用的loop,相當(dāng)于線程池的功能
XXexecutor
:是 Executor的實現(xiàn)類,用來制定具體任務(wù)執(zhí)行規(guī)則,一般來說指 ”線程創(chuàng)建規(guī)則“
,可以啟動新線程
【比如,這里的ThreadPerTaskExecutor】,也可以使用線程池
【比如 ThreadPoolExecutor 】
-
NioEventLoop
:是SingleThreadEventExecutor
的子類。
AbstractEventExecutorGroup
:實現(xiàn)了void execute(Runnable command);
方法
SingleThreadEventExecutord
:實現(xiàn)了void execute(Runnable command);
方法
SingleThreadEventExecutor
- SingleThreadEventExecutor:子類
NioEventLoop
- SingleThreadEventExecutor:實現(xiàn)了
void execute(Runnable command);
方法。execute 方法里面使用外部傳入的 executor 來創(chuàng)建線程