-
image.pngEventLoop
——事件循环,扩展了ScheduledExecutorService
,可以提供JDK的所有方法,如scheduleAtFixedRate,schedule
等
-
异步传输
-
EventLoop
中维护着自己的任务队列,如果当前线程是分配给当前Channel以及它的EventLoop
的那一个线程(通过调用EventLoop
的inEventLoop(Thread)
),则会立即执行;否则放入内部队列,当EventLoop
下次处理它的事件时,他会执行队列中的那些任务/事件 。对于长时间执行的任务建议用一个专门的EventExecutor
处理
image.png - 创建
EventLoopGroup
时就直接分配了EventLoop
(以及支撑它们的Thread),以确保在需要时它们是可用的。EventLoopGroup
负责为每个新创建的Channel分配一个EventLoop
,同一个EventLoop
可能会被分配给多个Channel
,Channel
的整个生命周期与EventLoop
绑定(n:1),ThreadLocal
变量在同一个EventLoop
的Channel
中是共用的
image.png
-
-
阻塞传输的
image.pngEventLoop
和Channel
是一一对应绑定
网友评论