• <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>
            面對現實,超越自己
            逆水行舟,不進則退
            posts - 269,comments - 32,trackbacks - 0
            Active Object 模式是Command模式的一種,是實現多線程控制的一項古老技術 .

            在《敏捷軟件開發》這本書中描述的算法如下:
            1、構造一個命令。(實現Command模式的一個命令)
            2、將該命令放入Active Object Engine(也就是放入一個隊列,LinkedList)
            3、從該Engine取出一個命令,執行,若該命令沒有執行過,設為執行過,然后將自己加入隊列尾部,若執行過,判斷該命令執行需要的事件發生沒有,未發生,再將自己加入隊列尾部。事件發生了,將需要執行的命令加入隊列尾部。

            Active Object模式不屬于《Design Pattern》23模式。實際上,她是一種特殊的Command Queue。其特殊之處在于:
            1. 隊列的擁有者會順序地執行隊列中所有Command對象的Execute方法。(這個其實不算特殊)
            2.Command對象在自己的Execute方法結束前,可以把一個新的command對象(實際上常常是這個command對象自己)再加到隊列的尾部。
            看出來了嗎,這個隊列有可能不會終止的,他可以一直執行下去。這個可以作為一個應用或者服務的主模塊了,想像一下她可以作多少事情吧。
            《ASP》指出這個模式可以用來在一個線程中處理多任務的問題!??! ^_^ 太cool了。
            如何處理呢?你可以把每個command對象看作是一個任務。他在Execute函數中,處理自己的任務,在任務告一段落時,記錄自己的狀態,然后把自己插入到隊列的尾部,結束Execute方法。當隊列輪完一周后,又會再次執行這個command對象的Execute方法。 ^_^ 很cool吧。
            那么這種方法和多線程的方法相比有什么有缺點呢?
            最大的優點是,所有的command都在同一個線程中,因此切換時,不需要進入內核模式!!超高效?。?!而且,可以有很多很多的command,數量上遠遠超過多線程的數量。
            缺點嘛,是這種方法需要用戶自己來實現調度,另外這其實是一種非剝奪模式的多任務,如果command處理不好,就會連累其它所有的command,因此實際上比多線程要更復雜。(嘿嘿,程序員能夠怕麻煩嗎?)
            還有一點,Active Object運行于單線程,也就是說,她不能享受多處理器或多處理器核心帶來的性能上的改善。
            其實,這最后一點是非常致命的一點。也就是說,在當前intel的超線程CPU機器上,如果系統的負擔并不重的時候。Active Object的效率有可能比多線程更低。
            Anyway,這是一個非常有趣的模式。只是一般的程序員可能沒有機會用到。

            本文轉自:http://m.shnenglu.com/tx7do/archive/2010/02/28/108617.aspx
            posted on 2012-07-11 08:14 王海光 閱讀(816) 評論(0)  編輯 收藏 引用 所屬分類: Design Pattern
            激情久久久久久久久久| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国内高清久久久久久| 久久精品国产亚洲av麻豆蜜芽| 少妇久久久久久被弄高潮| 精品久久久久久国产| 国产精品久久久久久福利漫画| 国产成人精品久久综合| 青青草原综合久久大伊人| 亚洲va中文字幕无码久久| 夜夜亚洲天天久久| 日本强好片久久久久久AAA| 94久久国产乱子伦精品免费| 久久国产亚洲精品| 99久久国产亚洲高清观看2024| 久久久久亚洲AV无码专区桃色| 色综合久久无码中文字幕| 欧美粉嫩小泬久久久久久久| 国内精品人妻无码久久久影院| 午夜精品久久久久久| 国产精品一久久香蕉产线看| 午夜精品久久久久久| 久久精品人人做人人爽电影| 亚洲精品无码久久一线| 99久久做夜夜爱天天做精品| 久久最近最新中文字幕大全 | 熟妇人妻久久中文字幕| 久久久久亚洲精品男人的天堂| 久久久久久久亚洲Av无码| 超级碰碰碰碰97久久久久| 久久久久久久亚洲精品| 91精品国产91热久久久久福利| 人妻丰满AV无码久久不卡| 久久人妻AV中文字幕| 精品国产99久久久久久麻豆| 亚洲午夜久久久| 中文字幕亚洲综合久久菠萝蜜| 久久久久一本毛久久久| 99久久夜色精品国产网站| 国产福利电影一区二区三区久久久久成人精品综合 | 无码国内精品久久人妻|