Reactor反應(yīng)器的實(shí)現(xiàn)方法詳解
大多數(shù)應(yīng)用都會(huì)使用ACE_Reactor::instance()提供的默認(rèn)反應(yīng)器實(shí)例。
但是你也可以選擇自己的反應(yīng)器,這是因?yàn)锳CE使用了Bridge模式(使用兩個(gè)不同的類:一個(gè)是編程接口,另一個(gè)是實(shí)現(xiàn),第一個(gè)類會(huì)把各個(gè)操作傳給第二個(gè)類)。
例如使用線程池反應(yīng)器實(shí)現(xiàn):
ACE_TP_Reactor* tp_reactor = new ACE_TP_Reactor;
ACE_Reactor* my_reactor = new ACE_Reactor(tp_reactor, 1);//1表示my_reactor銷毀時(shí)也要?jiǎng)h除tp_reactor
ACE_Reactor::instance(my_reactor, 1);//1表示在程序終止時(shí)刪除my_reactor實(shí)例
反應(yīng)器的實(shí)現(xiàn)
1)ACE_Select_Reactor
除了Windows之外的所有平臺(tái)使用的默認(rèn)反應(yīng)器實(shí)現(xiàn)(select()函數(shù))。
2)ACE_WFMO_Reactor
Windows上的默認(rèn)反應(yīng)器實(shí)現(xiàn)。
3)ACE_Msg_WFMO_Reactor
應(yīng)用COM/DCOM服務(wù)器。
4)ACE_TP_Reactor
擴(kuò)展了ACE_Select_Reactor,允許它同時(shí)在多個(gè)線程中運(yùn)行:線程池。
Leader/Follower模板,線程之一將成為領(lǐng)導(dǎo)者,并獲取反應(yīng)器的所有權(quán),以等待事件。
5)ACE_Priority_Reactor
也擴(kuò)展了ACE_Select_Reactor。
使用了ACE_Event_Handler類中的priority()方法,使得優(yōu)先級(jí)更高的事件會(huì)得到先處理。
6)GUI集成式反應(yīng)器
用于X Window System,擴(kuò)展了ACE_Select_Reactor。
單線程應(yīng)用,但同時(shí)既能響應(yīng)GUI時(shí)間(比如按鈕按下),又能響應(yīng)你自己的應(yīng)用事件。
QuickTime Reactor
FastLight Reactor
Tk Reactor
Xt Reactor
相關(guān)文章
深入剖析C語言中qsort函數(shù)的實(shí)現(xiàn)原理
這篇文章主要介紹了C語言中qsort函數(shù)的實(shí)現(xiàn)原理,本文將從回調(diào)函數(shù),qsort函數(shù)的應(yīng)用,qsort函數(shù)的實(shí)現(xiàn)原理三個(gè)方面進(jìn)行講解,并通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-03-03
C語言全面細(xì)致講解單雙精度float與double的使用方法
C字符串操作函數(shù)實(shí)現(xiàn)方法小結(jié)
簡(jiǎn)要對(duì)比C語言中的dup()函數(shù)和dup2()函數(shù)
VS2022創(chuàng)建Windows服務(wù)程序的方法步驟

