有段時間沒看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執行緒取
spring mvc 專案分析
分包 controller dao dao.impl service service.impl model util 資料校驗 資料轉換 資料計算等 在model包新建乙個page類以便分頁操作 建立乙個servicemanager來管理service 配置檔案 分三個 hibernate 資料來源...
DTMF VAD 專案分析
這一專案是準確的找出dtmf訊號的起點,當檢測到後,觸發dtmf decoder,對此後接收的資料進行解碼,等到相應的撥號鍵值。1.分析輸入訊號特徵 訊號是dtmf訊號加通道中的電路雜訊,現初步分析,這背景雜訊是高斯背景雜訊,這種雜訊好在對dtmf頻率特性損失不是很大,這樣問題會好解決一點。2.訊號...
專案分析 PLUG
plug過程 1.init plug define init plug plug initplug g initplug true 共享記憶體資料結構 struct plugsharememory inline void createsharememory i plugmodulemanage pm...