项目分析(map复习)
生活随笔
收集整理的這篇文章主要介紹了
项目分析(map复习)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有段時間沒看map里面的東西了,剛才看發現功能上增加了一些,在來復習了一次流程
初始化每個map建立線程,這個線程有兩個功能,1.處理GS發過來的包 2.驅動map里面的定時器
GS發過來的包是存在m_gs2msPkts2這個無鎖的單消費者,單生產者隊列中,只要是GS中不處理的包都要發到MAP中
然后每個線程thrTransData::thread()就從m_gs2msPkts2中取包
調用Map::process_pkt由于map繼承了thrTransData,然后根據綁定調用對于的函數
那如果map里面又包發出去怎么發呢?
有的消息直接通過DataLayer直接發送給客戶端
還有的消息需要發送GS中的如:玩家下線保存數據庫,玩家切換地圖,把這樣的包放在m_quePkts2這樣一個單生產者,單消費無鎖隊列
然后GS線程就從m_quePkts2中取包做相應的處理,當然這之間傳遞都需要協議的,所有的包都需要內存池的
看來是GS發送到MS中放到m_gs2msPkts2中,然后由map線程取
MS發送到GS的包放到m_quePkts2,然后由GS線程取
?
轉載于:https://www.cnblogs.com/zzyoucan/p/3909054.html
總結
以上是生活随笔為你收集整理的项目分析(map复习)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开机自动bios怎么办 开机自动进入BI
- 下一篇: 3.通过现有的PDB创建一个新的PDB