1、ChannelHandler的执行和阻塞
通常ChannelPipeline中的每一个ChannelHandler都是通过它的EventLoop(I/O线程)来处理给它传递的事件的。所以至关重要的是不要阻塞这个线程,因为这会对整体的I/O处理产生负面影响。
但有时可能需要与那些使用阻塞API的遗留代码进行交互。对于这种情况,CHannelPipeline有一种接受一个EventExecutorGroup的add()方法。如果一个时间被传递给一个自定义的EventExecutorGroup,它将被包含在这个EventExecutorGroup中的某个EventExecutor所处理,从而被从该Channel本身的EventLoop中移除。对于这种用例,Netty提供了一个叫DefaultEventExecutorGroup的默认实现。