Reactor模式在维基百科中有解释,但它有点抽象。您能否用更具体的方式描述这种模式?最好使用代码片段或高级类图来描述一些Reactor模式的应用。
Reactor模式在维基百科中有解释,但它有点抽象。您能否用更具体的方式描述这种模式?最好使用代码片段或高级类图来描述一些Reactor模式的应用。
您可能需要查看描述此模式的原始论文http://www.dre.vanderbilt.edu/~schmidt/PDF/reactor-siemens.pdf
反应堆设计模式处理由一个或多个客户端并发传递给应用程序的服务请求。应用程序中的每个服务可能由多个方法组成,并由单独的事件处理程序表示,负责分派特定于服务的请求。事件处理程序的分派由一个初始化调度程序执行,该调度程序管理已注册的事件处理程序。服务请求的多路复用由同步事件多路复用器执行。
反应器允许使用单个线程高效处理多个阻塞(例如由于IO)的任务。反应器管理一组处理程序并运行事件循环。当调用它执行一个任务时,它将其链接到一个新的或空闲的处理程序,使其变为活动状态。事件循环 (1) 查找所有处于活动且未阻塞的处理程序(或将此委托给调度程序实现)(2) 顺序执行每个已找到的处理程序,直到它们完成或达到阻塞点。已完成的处理程序变为非活动状态并空闲以备重用,而受阻的活动处理程序则会让出,允许事件循环继续。(3) 从步骤 (1) 重复。