• <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>

            一動不如一靜

            C++博客 首頁 新隨筆 聯系 聚合 管理
              20 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks
            ??? ?? ACE_WFMO_Reactor允許多個線程并發的調用handle_events(),這個能力的增加使得它的設計變的復雜,并且引入了一些同基于select的反應器不同的地方.不同點如下:
            • 注冊改變的協調.已注冊句柄集合的每一個改變,將會影響到所有執行事件循環的線程.在沒有同步的情況下允許這些改變的發生,會導致丟失事件,或不正確,不合法的句柄被分發.為了在多線程的情況下,正確的處理注冊發生改變的情況,ACE_WFMO_Reactor維持了三個句柄信息集合對象.
            1. 用作事件偵查和分發的當前句柄
            2. 新句柄, 除了當前句柄集合,新句柄也在等待
            3. 掛起句柄,是當前句柄中掛起的句柄
            當需要改變已注冊的句柄時,(例如:注冊,移除,掛起和恢復一個事件處理器),要記住句柄,事件處理器,事件類型信息,和相關信息的記錄.下一個完成handle_events的線程會注意到這個改變,獲取reactor的鎖,等待所有其他正在運行handle_events的線程完成.為了能讓這些線程及時的完成,等待的線程發送一個內部事件,該內部事件是分發句柄集合的一部分.喚醒所有阻塞在WaitForMultipleObjects的線程.這個時候,所有的事件處理線程將會阻塞在等待變化的發生.當原始的線程完成必要的信息和句柄改變后,釋放reactor的鎖.所有的事件處理線程重新開始在更新后的句柄集合上進行等待,分離和分發.
            • 推遲事件處理器的清除.ACE_WFMO_Reactor注冊改變的延遲引入了一些與基于select()的反應器的不同之處.當hanle_*()方法返回-1或者ACE_Reactor::remove_handler()被事件處理器調用時,它推遲事件處理器的移除和handle_close()鉤子函數的回調,直到上面說講的注冊改變發生.所以一個應用在請求ACE_WFMO_Reactor移除一個事件處理器之后,不能立即刪除該事件處理器,否則reator后來調用的handle_close()方法會分發一個無效的指針.
            posted on 2006-06-23 20:48 一動不如一靜 閱讀(802) 評論(0)  編輯 收藏 引用 所屬分類: ACE
            国产午夜福利精品久久2021 | 精品久久久久久无码中文字幕 | 久久99精品久久久久久9蜜桃| 亚洲国产精品18久久久久久| 一本久道久久综合狠狠躁AV| 久久香蕉国产线看观看猫咪?v| 久久久久人妻一区精品| 少妇久久久久久被弄到高潮| 亚洲精品无码久久久久AV麻豆| 久久亚洲sm情趣捆绑调教 | 久久天天躁狠狠躁夜夜2020| 久久久久av无码免费网| 国产激情久久久久影院小草 | 久久久久亚洲精品无码蜜桃| 亚洲国产二区三区久久| 国产精品福利一区二区久久| 午夜视频久久久久一区| 99久久成人18免费网站| 成人资源影音先锋久久资源网| 久久笫一福利免费导航 | 久久水蜜桃亚洲av无码精品麻豆 | 欧美熟妇另类久久久久久不卡| 久久免费视频一区| 伊人久久大香线蕉综合热线| 88久久精品无码一区二区毛片| 亚洲精品高清久久| 久久久噜噜噜久久| 亚洲国产精品18久久久久久| 亚洲成色www久久网站夜月| 国产婷婷成人久久Av免费高清| 久久久无码精品亚洲日韩蜜臀浪潮| 午夜天堂精品久久久久| 99久久国语露脸精品国产| 国产成人香蕉久久久久| 一级a性色生活片久久无少妇一级婬片免费放 | 久久99久久99精品免视看动漫| 国产精品久久久久aaaa| 青青热久久国产久精品| 久久久久久毛片免费播放| 久久99国产精品99久久| 77777亚洲午夜久久多人|