大多數應用都會使用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模式,代替常用的多執行緒的處理方式,節省系統的資源,提高系統...