Wikipedia中对Reactor模式进行了说明,它有点抽象。您可以更具体地描述这种模式吗?理想情况下,使用代码片段或描述反应堆模式某些应用程序的高级类图。
Wikipedia中对Reactor模式进行了说明,它有点抽象。您可以更具体地描述这种模式吗?理想情况下,使用代码片段或描述反应堆模式某些应用程序的高级类图。
Answers:
您可能需要查看描述它的原始文章,网址为http://www.dre.vanderbilt.edu/~schmidt/PDF/reactor-siemens.pdf
Reactor设计模式处理由一个或多个客户端同时交付给应用程序的服务请求。应用程序中的每个服务都可以由服务器方法组成,并由负责分派特定于服务的请求的单独事件处理程序表示。事件处理程序的调度由初始化调度程序执行,该调度程序管理已注册的事件处理程序。服务请求的多路分解由同步事件多路分解器执行。
反应器允许使用单个线程有效地处理阻塞(例如由于IO)的多个任务。反应堆管理处理程序池并运行事件循环。当调用它执行任务时,它将它与新的或闲置的处理程序链接起来,使其处于活动状态。事件循环(1)查找所有活动且未阻塞的处理程序(或将其委托给调度程序实现)(2)按顺序执行这些找到的处理程序,直到它们完成或到达阻塞点为止。已完成的处理程序将变为非活动状态且闲置以供重用,而被阻止的活动处理程序将屈服,从而允许事件循环继续进行。(3)从步骤(1)开始重复