EventLoop
运行任务来处理在连接的生命周期内发生的事件是任何网络框架的基本功能,称为事件循环 - netty中使用EventLoop实现。
用于处理Channel的事件,已经池化。
一个EventLoop将由一个永远不会改变的Thread驱动,同时任务(runnable或callable)可以直接交给EventLoop按照FIFO的顺序执行实现。产生的所有事件都由EventLoop本生绑定的线程执行。
由类图可知,EventLoop实现了ScheduledExecutorService定时线程池接口,所以也拥有着定时执行任务的功能。
- 线程管理
netty线程模型的卓越性能取决于对当前执行Thread的身份确定,确定它是否是分配给当前channel预计它的EventLoop的线程。
每个EventLoop都有自己独立的阻塞任务队列。
线程分配
异步传输:一个EventLoop对应一个线程对应多个Channel。
同步传输:一个EventLoop对应一个线程对应一个Channel。
以上只是我个人理解,仅供参考,如有错误,请包涵指正!