2011-04-06 48 views
68

反應堆模式的唯一解釋是wikipedia,它有點過於抽象(imho)。你能以更具體的方式來描述這個模式嗎?理想情況下使用代碼片段或高級類圖?「反應堆模式」的說明

+1

發現此問題是一個很好的答案 - http://stackoverflow.com/questions/9138294/what-is-the-different-between-event-driven-model-and - 反應模式 – 2013-04-02 23:09:19

回答

30

你可能要檢查它描述http://www.cs.wustl.edu/~schmidt/PDF/reactor-siemens.pdf

反應堆設計模式原紙處理在 由一個或多個 客戶同時提供給應用程序的服務請求。應用程序中的每項服務可能由 多種方法組成,並由負責分派服務特定請求的單獨事件處理程序 表示。 事件處理程序的分派由啓動 分派器執行,該分派器管理註冊的事件處理程序。 服務請求的解複用由一個 同步事件解複用器執行。

15

一個反應器允許多個任務阻塞(比如說由於IO)使用單個線程進行有效處理。反應器管理一個處理程序池並運行一個事件循環。當它被調用來執行一個任務時,它將它與一個新的或空閒的處理程序鏈接起來,使其處於活動狀態。事件循環(1)查找所有處於活動狀態和未阻止狀態的處理程序(或將其委託給調度程序實現)(2)按順序執行這些找到的處理程序,直到它們完成或到達它們阻止的點。完成的處理程序變爲非活動狀態,空閒以供重用,而阻塞的活動處理程序產生,允許事件循環繼續。 (3)重複步驟(1)