在看张龙讲解netty的Reactor模式的视频后,记录其中的内容,便于以后查看。
Reactor模式最早提出是在一篇论文中。Doug Lea大神在《Scalable IO in Java》一书中给了更全面的解释。
两者的角色有相通之处。
在左图中,Reactor模式设计5个角色。
1:Initiation Dispatcher(初始分发器):实际上就是Reactor的角色,制定了一些规范,用于控制事件的调度方式,同时又提 供了应用进行事件处理器的注册、删除等设施。是整个事件处理流程的核心组件,它会通过同步事件分离器来等待事件发, 一旦发生事件,它就会先分离出每一个事件(遍历SelectionKeys),然后调用事件处理器,最终调用相关方法实现来处理事 件。
2:Synchronous Event Demultiplexer 同步事件分离器:本身是一个系统调用,用于等待事件的发生(可能是一个,也可能是 多个