反应堆模式在wikipedia中解释,它有点过于抽象。你能用更具体的方式描述这种模式吗?理想情况下,使用代码片段或描述反应器模式的一些应用的高级类图。
答案 0 :(得分:37)
您可能需要查看描述它的原始论文http://www.dre.vanderbilt.edu/~schmidt/PDF/reactor-siemens.pdf
Reactor设计模式处理的服务请求 由一个或多个同时提交给应用程序 客户端。应用程序中的每个服务都可以包含 几个方法,由一个单独的事件处理程序表示 负责调度特定于服务的请求。 事件处理程序的调度由启动执行 调度程序,管理已注册的事件处理程序。 服务请求的解复用由a执行 同步事件多路分解器。
答案 1 :(得分:22)
反应器允许使用单个线程有效地处理阻塞(例如由于IO)的多个任务。 reactor管理一个处理程序池并运行一个事件循环。当它被调用以执行任务时,它将它与一个新的或空的处理程序链接,使其处于活动状态。事件循环(1)查找所有处于活动状态和未阻塞状态的处理程序(或将其委托给调度程序实现)(2)按顺序执行这些找到的处理程序中的每一个,直到它们完成或到达它们阻塞的点。已完成的处理程序变为非活动状态并且空闲以供重用,而阻塞的活动处理程序会产生,从而允许事件循环继续。 (3)来自步骤(1)的重复