• <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 - 311, comments - 0, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            整個game server的并發模型 

            一 概述 
            game server至少要提供如下幾類的功能 : 
              1、響應客戶端請求-------WorldRunnable 
              2、后臺命令  -------CliRunnable 
              3、分布式架構(RMI等) -------MaNGOSsoapRunnable 

            可以看到針對這幾類功能,mangos都給予了支持。 

            二、WorldRunnable響應客戶端請求的并發實現 
              game server會提供很多服務,如組隊、加好友、交易、走路、戰斗……,從宏觀上講這些服務是同時對外提供的,另外IO操作是費時的, 
            必須將IO與邏輯處理分開,這樣的話一個基本的實現是這樣的: 
            1、開啟IO線程,所有費時的操作交由此處處理   WorldDatabase.ThreadStart(); 
            2、利用協程來實現各個子系統,或者利用心跳來實現各個子系統的調度(不能開很多線程,線程代價太高) 

            三、Mangos的心跳實現 
            void World::Update(uint32 diff) 
              基本上包括幾類: 
              1、檢查定時器---------------時間 
              2、刷任務 
              3、維護session---------------------人物 
              4、全局環境更新(map、battleGround)--------地點 
              5、處理服務器事件------------------事件 
              6、其他(數據同步、后臺調試、IO回調……) 

            四、game server運行的機制 
              1、定時器觸發 
              2、事件觸發(松耦合) 

            五、典型的一種service的實現方式 
            1、IO協程將cammand入隊 
            2、worker協程 依次fetch、execute 
               核心數據結構是線程安全的隊列 
            国产精品久久久香蕉| 久久精品国产精品青草| 麻豆av久久av盛宴av| 亚洲精品国产字幕久久不卡| 久久综合狠狠色综合伊人| 天天影视色香欲综合久久| 久久久久人妻精品一区| 久久精品二区| 久久国产免费观看精品| 久久精品国产男包| 国产精品综合久久第一页| 一本一道久久综合狠狠老| 日本精品久久久久久久久免费| 国产精品久久久亚洲| 久久精品青青草原伊人| 久久免费大片| 99久久精品免费观看国产| 国内精品久久人妻互换| 大香伊人久久精品一区二区 | 久久国产亚洲精品| 日本久久久精品中文字幕| 97久久精品人妻人人搡人人玩| 久久婷婷色香五月综合激情| 色婷婷久久久SWAG精品| 99久久人人爽亚洲精品美女| 久久噜噜电影你懂的| 精品亚洲综合久久中文字幕| 久久久久无码精品国产| 奇米综合四色77777久久| 亚洲精品乱码久久久久久蜜桃图片| 青春久久| 97精品伊人久久久大香线蕉| 久久婷婷人人澡人人爽人人爱| 一本久久a久久精品综合香蕉| 青青热久久国产久精品 | 无码国内精品久久人妻| 无码精品久久久天天影视| 欧美大香线蕉线伊人久久| 精品久久久久久综合日本| 久久99精品久久久久久不卡 | 伊人伊成久久人综合网777|