• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            把這兩天做Proactor的一些經(jīng)驗(yàn)和心得寫一下,可能會給一些人幫助。
                Proactor是異步模式的網(wǎng)絡(luò)處理器,ACE中叫做“前攝器”。
                先講幾個(gè)概念:
                前攝器(Proactor)-異步的事件多路分離器、處理器,是核心處理類。啟動后由3個(gè)線程組成(你不需要關(guān)心這三個(gè)線程,我只是讓你知道一下有這回事存在)。
                接受器(Acceptor)-用于服務(wù)端,監(jiān)聽在一個(gè)端口上,接受用戶的請求。
                連接器(Connector)-用于客戶端,去連接遠(yuǎn)程的監(jiān)聽。當(dāng)然,如果遠(yuǎn)程是ACE寫的,就是Acceptor。
                異步模式-即非阻塞模式。網(wǎng)絡(luò)的傳輸速度一般來講為10Mbps、100Mbps、1000Mbps。拿千兆網(wǎng)來說,實(shí)際的傳輸速度為1000Mbps/8大概為128KB左右。我們的CPU一般為P4 3.0GHZ,如果是32位的處理器,一秒鐘大概可以處理6G的字節(jié),那么,128KB的網(wǎng)絡(luò)速度是遠(yuǎn)遠(yuǎn)及不上處理器的速度的。網(wǎng)絡(luò)發(fā)送數(shù)據(jù)是一位一位發(fā)送出去的,如果CPU等在這里,發(fā)送完成函數(shù)才結(jié)束,那么,處理器浪費(fèi)了大量時(shí)間在網(wǎng)絡(luò)傳輸上。
                操作系統(tǒng)提供了異步的模式來傳輸網(wǎng)絡(luò)數(shù)據(jù),工作模式即:應(yīng)用程序把要發(fā)送的數(shù)據(jù)交給操作系統(tǒng),操作系統(tǒng)把數(shù)據(jù)放在系統(tǒng)緩沖區(qū)后就告訴應(yīng)用程序OK了,我?guī)湍惆l(fā),應(yīng)用程序該干嘛干嘛去。操作系統(tǒng)發(fā)送完成后,會給應(yīng)用系統(tǒng)一個(gè)回執(zhí),告訴應(yīng)用程序:剛才那個(gè)包發(fā)送完成了!
               舉個(gè)例子:你有幾封郵件和包裹要發(fā),最有效率的辦法是什么?你把郵件和包裹及交給總臺,總臺MM說,好了,你幫你發(fā),你忙去吧!然后你去工作了。過了一會,總臺MM打電話告訴你:“剛才我叫快遞公司的人來了,把你的包裹發(fā)出去了。郵局的人也來了,取走了郵件,放心好了”。同樣,如果你知道今天會有包裹來,比如你在淘寶上購物了,你能成天等在總臺?你應(yīng)該告訴總臺MM:“今天可能有我的一個(gè)快遞,你幫我收一下,晚上請你肯德基!”。MM:“看在肯得基的面子上,幫你收了”。某個(gè)時(shí)間,MM打電話來了:“帥哥,你的包裹到了,我?guī)湍愫炇樟耍靵砟冒伞?#8221;
               因?yàn)椴僮飨到y(tǒng)是很有效率的,所有,他在后臺收發(fā)是很快的。應(yīng)用程序也很簡單。Proactor就是這種異步模式的。Proactor就是總臺MM;ACE_Service_Handle就是總臺代為收發(fā)郵件的公司流程。
               以上轉(zhuǎn)載于http://www.cnblogs.com/acerrail/archive/2007/11/29/977415.html
               上面轉(zhuǎn)載寫的非常好,但是在網(wǎng)絡(luò)延時(shí)很厲害的時(shí)候可能會出現(xiàn)點(diǎn)問題。我根據(jù)我的見解補(bǔ)充一下也,如果不對請各位指教。

               首先是說發(fā)數(shù)據(jù):把郵件和包裹交個(gè)總臺MM(假設(shè)一個(gè)郵件,一個(gè)包裹),過了一會總臺妹妹打電話啊告訴你"郵件發(fā)出去了,但是包裹沒有發(fā)出去" (通過RESULT你可以知道發(fā)送多少,一共要發(fā)送多少).這個(gè)時(shí)候總臺MM會把包裹退還給你(從RESULT.message_block()中獲得有什么數(shù)據(jù)沒有發(fā)),我們開始重復(fù)以上的工作“包裹給總臺MM,總臺MM通知你發(fā)送結(jié)果”一直到你的郵件和包裹全部發(fā)送完為止。
               在就是收數(shù)據(jù):告訴總臺MM今天我一個(gè)包裹一個(gè)郵件,需要接收,你幫我收一下,十分鐘后總臺MM通知你“包裹來了”,你接手到包裹(表示實(shí)際上數(shù)據(jù)還未接收完),你就跟MM說“麻煩你回去繼續(xù)等著我還有一個(gè)郵件”,總臺MM就回去繼續(xù)等知道你的郵件來了他在繼續(xù)通知你。
               以上說的是在網(wǎng)絡(luò)延遲的情況下出現(xiàn)的情況,如果在局域網(wǎng)中基本不存在以上的情況。
             

               不過在實(shí)際應(yīng)用中 前置器在windows上的效果比較好,而在linux上主要還是使用反應(yīng)器
            posted on 2011-03-14 21:24 arrow8209 閱讀(372) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            統(tǒng)計(jì)

            久久国产精品一区| 狠狠久久综合伊人不卡| 尹人香蕉久久99天天拍| 久久久国产打桩机| 久久最近最新中文字幕大全 | 久久久久久曰本AV免费免费| 亚洲色婷婷综合久久| 久久国产综合精品五月天| 久久久久国产一区二区| 少妇高潮惨叫久久久久久| 欧美激情精品久久久久久久| 久久精品人人做人人妻人人玩| 久久婷婷国产麻豆91天堂| 一本大道久久东京热无码AV| 国产99精品久久| 九九精品99久久久香蕉| 亚洲国产另类久久久精品小说 | 国产精品无码久久久久| 丁香五月网久久综合| 久久亚洲精品国产亚洲老地址| 丰满少妇人妻久久久久久4| 国产毛片欧美毛片久久久 | 狠狠久久亚洲欧美专区| 国产一久久香蕉国产线看观看| 久久亚洲av无码精品浪潮| 婷婷综合久久狠狠色99h| 97久久精品人妻人人搡人人玩| 日本加勒比久久精品| 精品熟女少妇AV免费久久| 四虎影视久久久免费| 国产精品一区二区久久精品无码| 久久精品aⅴ无码中文字字幕不卡| 色妞色综合久久夜夜| 国产精品中文久久久久久久| 久久精品国产72国产精福利| 国产69精品久久久久99尤物| 久久精品国产91久久麻豆自制| 97久久精品无码一区二区| 久久免费小视频| 亚洲国产精品久久久久婷婷软件| 久久亚洲高清观看|