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

            X-Matrix

            MMORPG無縫服務器設計

            線程模型:將任務與執行分離

            ACE,Python和Java(我所知道的)中要獲得多線程的能力,都是通過從一個線程對象基類繼承,重載特定的成員函數來實現。簡單的來看,它用起 來也相當簡單,理解起來也不復雜,但,用過一段時間之后,就會發現處理復雜問題時,你會遇到許多的限制。 1.必須從一個線程對象基類繼承嗎? 現在看來是的,否則,你只有使用系統OS提供的線程函數了。 2.我已經有個類了,它不是從線程對象基類繼承的,我要使用多繼承嗎? 是的,除非重寫。 3.我有一個函數,想讓他在另一個線程執行,一定要寫個類嗎? 是的。 4.我有一個類,它的每個成員函數我都想他們在另外的線程中執行,怎么辦? 線程對象基類只有一個線程函數,你必須通過某種通訊機制去讓它執行不同的成員函數。 4.當線程在執行一個對象的某個成員時,這個對象被刪除了怎么辦? 沒辦法,你必須自己管理對象的生存期。 嗚呼!問題越來越多,該怎么辦?我們需要某種透明的線程模型,他能處理任意的需要被異步執行的類的成員函數或者普通函數,它能提供一種策略,使得我們能 自動管理處理不同線程中的對象的生存期。我們現在有了這種工具了嗎? 熟悉Boost的人可能覺得boost.thread也許提供了這種能力。很不幸,它滿足了一部分上述需求。 正在實現上述需求的一個線程模型。它將任務與任務的執行者分離,它支持人任何的任務,不論它是普通的函數,還是具有任意參數的成員函數,你均能將它作為 一個任務拋到其他的線程執行,它是非侵入式,通過它所支持的生命期管理,你不用在擔心對象在異步執行時被銷毀。它用模板實現。

            posted on 2008-08-23 22:25 x-matrix 閱讀(1713) 評論(14)  編輯 收藏 引用

            評論

            # re: 線程模型:將任務與執行分離[未登錄] 2008-08-24 10:18 Kevin Lynx

            通過functor,可以做到將成員函數,C式函數,operator(),等綁定為線程函數.
            我覺得這種方式起碼比繼承重寫某個虛函數來得靈活.
              回復  更多評論   

            # re: 線程模型:將任務與執行分離 2008-08-24 15:17 戴爾筆記本

            我也是為獲得多線程的能力,通過從一個線程對象基類繼承,重載特定的成員函數來實現。也許還有更好的方法。  回復  更多評論   

            # re: 線程模型:將任務與執行分離 2008-08-24 23:28 x-matrix

            @戴爾筆記本
            這種方式是需要改變了.  回復  更多評論   

            # re: 線程模型:將任務與執行分離 2008-08-25 10:02 bugs_killer

            有點吹毛求疵了.  回復  更多評論   

            # re: 線程模型:將任務與執行分離 2008-08-25 11:06 x-matrix

            @bugs_killer
            我不這樣認為。
              回復  更多評論   

            # re: 線程模型:將任務與執行分離[未登錄] 2008-08-25 14:25 陳梓瀚(vczh)

            我認為這是Aspect-Oriented Programming處理的問題,不是OO處理的問題。想堅持用OO的辦法,意味著重構。于是你上述的問題也就蕩然無存了,因為重新設計的必然可以滿足要求。  回復  更多評論   

            # re: 線程模型:將任務與執行分離 2008-08-25 14:45 x-matrix

            @ 陳梓瀚
            不論是面向對象,還是面向方面,都要減少重構。良好的設計會盡可能減少這種需要,即使重構,也要盡量減少原有代碼的修改。
            這個問題是面向對象還是面向方面,值得考慮。  回復  更多評論   

            # re: 線程模型:將任務與執行分離[未登錄] 2008-08-25 17:05 陳梓瀚(vczh)

            如果是由于架構的原因導致需求不被滿足的話,就不能執著于減少修改了。  回復  更多評論   

            # re: 線程模型:將任務與執行分離[未登錄] 2008-08-26 15:04 hdqqq

            其實不一定要過度追求線程實現,一般的實現方式是啟動幾個線程提供對外服務,有任務提交后,分配運行。這樣可伸縮性也比較強。  回復  更多評論   

            # re: 線程模型:將任務與執行分離 2008-08-26 15:13 x-matrix

            @hdqqq
            任務是什么呢?函數?類成員函數?函數對象?函數/成員函數聲明是什么樣的?一定要滿足某種聲明形式嗎?我已有代碼不滿足怎么辦?這些都是要解決的問題。
              回復  更多評論   

            # re: 線程模型:將任務與執行分離[未登錄] 2008-08-26 16:12 hdqqq

            任務只是抽象意義上的需要運行的代碼,函數和成員函數只是對于人來說的,對于機器來說,都是一樣的,至于已有函數滿不滿足接口我想是架構需要考慮的問題,其實一旦代碼編譯好了,其調用方式就定了,如果非要滿足所有的調用方式,可能rpc或者com的方式更適合一些。
            我以前寫的關于 函數和線程方面調用的文章。

            http://blog.csdn.net/hdqqq/archive/2005/06/29/407674.aspx  回復  更多評論   

            # re: 線程模型:將任務與執行分離 2008-08-26 16:37 x-matrix

            @hdqqq
            我覺得解決這個問題非模板莫屬,其他的方式無一例外都需要用戶添加一堆對用戶來說根本沒任何作用的代碼。看看com,里面一堆的古怪的符號,光名字,已經讓人惡心。  回復  更多評論   

            # re: 線程模型:將任務與執行分離 2008-08-31 13:09 hsen

            好像你要講的就是boost::thread,我沒猜錯吧?
              回復  更多評論   

            # re: 線程模型:將任務與執行分離 2008-09-02 10:11 x-matrix

            @hsen
            不是。
              回復  更多評論   

            公告

            MMORPG無縫服務器論壇
            Google Groups
            xmatrix
            Visit this group

            導航

            統計

            留言簿(2)

            隨筆檔案

            最新評論

            閱讀排行榜

            狠狠色丁香久久婷婷综合蜜芽五月 | 亚洲国产精品狼友中文久久久| 97精品依人久久久大香线蕉97| 7国产欧美日韩综合天堂中文久久久久| 欧美久久久久久| 亚洲欧洲精品成人久久奇米网| 久久e热在这里只有国产中文精品99 | 国内精品久久久久久麻豆 | 久久这里只精品国产99热| 日韩精品久久无码人妻中文字幕| 久久免费看黄a级毛片| 亚洲精品乱码久久久久久久久久久久 | 久久久久亚洲AV成人网人人网站 | 亚洲午夜久久久久久久久电影网| 亚洲日本va午夜中文字幕久久 | 久久福利资源国产精品999| 久久久久久A亚洲欧洲AV冫| 色天使久久综合网天天| 久久这里只有精品首页| 一本一本久久A久久综合精品 | 久久影院综合精品| 国内精品久久久久影院一蜜桃 | 久久精品国产欧美日韩| 久久只有这里有精品4| 无码人妻精品一区二区三区久久久| 99久久无码一区人妻a黑| 久久久青草青青亚洲国产免观| 国产精品久久久久久久久久免费| 久久精品无码一区二区app| 久久这里的只有是精品23| 三上悠亚久久精品| 国产精品美女久久久久av爽 | 亚洲国产成人久久综合一区77 | 一本久久精品一区二区| 伊人久久大香线蕉亚洲五月天| 青草影院天堂男人久久| 久久久久se色偷偷亚洲精品av| 婷婷综合久久狠狠色99h| 久久人人爽人人爽人人片AV高清| 四虎国产永久免费久久| 日韩精品无码久久久久久|