Netty中的NioEventLoop是一个EventExecutor,其在创建NioEventLoopGroup时就已经创建了,并存放在一个EventExecutor数组中。NioEventLoop本身也是一个Executor,拥有execute()方法,同时还包含了一个Executor,该Executor也具有execute()方法,但它们执行的任务有所不同。NioEventLoop的execute()方法主要负责将任务添加到任务队列,而同时它包含的Executor的execute()方法负责将任务交给新创建的线程来执行。这一点的区别表现在每次调用execute()方法时,如果队列中没有任务,NioEventLoop会将其交给绑定的线程,而不是直接将其加入队列。了解这些差别对于更好地使用Netty是非常重要的。