Reactor反應器的實現方法詳解

2022-10-04 05:06:09 字數 1116 閱讀 3790

大多數應用都會使用ace_reactor::instance()提供的預設反應器例項。

但是你也可以選擇自己www.cppcns.com的反應器,這是因為ace使用了bridge模式(使用兩個不同的類:乙個是程式設計介面,另乙個是實現,第乙個類會把各個操作傳給第二個類)。

例程式設計客棧如使用執行緒池反應器實現:

ace_tp_reactor* tp_reactor = new ace_tp_reactor;

ace_reactor* my_reactor = new ace_reactor(tp_reactor, 1);//1表示my_reactor銷毀時也要刪除tp_react程式設計客棧or

ace_reactor::instance(my_reactor, 1);//1表示在程式終止時刪除my_reactor例項

反應器的實現

1)ace_select_reactor

除了windows之外的所有平台使用的預設反應器實現(select()函式)。

2)ace_wfmo_reactor

windows上的預設反應器實現。

3)ace_msg_wfmo_reactor

應用com/dcom伺服器。

4)ace_tp_reactor

擴充套件了ace_select_reactor,允許它同時在多個執行緒中執行:執行緒池。

leader/follower模板,執行緒之一將成為領導者,並獲取反應器的所有權,以等待事件。

5)ace_priority_reactor

也擴充套件了ace_select_reactor。

使用了ace_event_handler類中的priority()方法,使得優先順序更高的事件會得到先處理。

6)gui整合式反應器

用於x wuynkfhwindow system,擴充套件了ace_select_reactor。

單執行緒應用,但同時既能響應gui時間(比如按鈕按下),又能響應你自己的應用事件。

quicktime reactor

fastlight reactor

tk reactor

xt reactor

本文標題: reactor反應器的實現方法詳解

本文位址: /ruanjian/c/95822.html

Reactor反應器模式 epoll

最近在看redis原始碼,主體流程看完了。在網上看到了reactor模式,看了一下,其實我們經常使用這種模式。反應器設計模式 reactor pattern 是一種為處理併發服務請求,並將請求提交到乙個或者多個服務處理程式的事件設計模式。當客戶端請求抵達後,服務處理程式使用多路分配策略,由乙個非阻塞...

基礎 Reactor反應器模式

目錄 一,單執行緒reactor反應器模式 二,多執行緒reactor反應器模式 來由 最傳統的模式中,乙個執行緒,阻塞的完成獨寫任務,效率低下,於是就產生了經典的 connection per thread 模式,當乙個任務觸發的時候就派發給乙個執行緒去處理,也就是乙個執行緒對應乙個socket,...

Reactor模式(反應器模式)

reactor這個詞譯成漢語還真沒有什麼合適的,很多地方叫反應器模式,但更多好像就直接叫reactor模式了,其實我覺著叫應答者模式更好理解一些。通過了解,這個模式更像乙個侍衛,一直在等待你的召喚,或者叫召喚獸。併發系統常使用reactor模式,代替常用的多執行緒的處理方式,節省系統的資源,提高系統...