网狐棋牌代码分析(一)ServerKernel中的IQueueService接口分析
来源:互联网 发布:手机淘宝活动报名 编辑:程序博客网 时间:2024/06/05 17:08
(有什么问题欢迎指教,企鹅:2172243813 更多资讯尽在www.ttkmwl.com)
关键代码解析:
1/开始服务
2bool __cdecl CQueueService::StartService()
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25}
m_QueueServiceThread.InitThread(m_hCompletionPort);
他悄悄的给完成端口句柄扔给了服务线程,偶们去看看服务线程拿这玩意干了啥,,,
/运行函数
bool CQueueServiceThread::RepetitionRun()
}
秘密在此:
GetQueuedCompletionStatu
m_hCompletionPort是通过线程参数传递进来的,dwThancferred和pQueueService是在之前CQueueService::AddToQueue()中Post过来的参数,,,
/加入数据
bool __cdecl CQueueService::AddToQueue(WORD wIdentifier, void *const pBuffer, WORD wDataSize)
}
数据经过完成端口在CQueueServiceThread绕一圈以后会回到CQueueService::OnQueueServiceThread()
/数据消息
void CQueueService::OnQueueServiceThread(const tagDataHead &DataHead, void * pBuffer, WORD wDataSize)
{
}
这样队列服务就完成了他的使命,将执行的消息,异步的交给指定接口去处理,,,
稍后将对列队列服务做个宏观上的的分析,,,下班时间到,,,回去继续,,,
用一句话来描述QueueService模块就是:
将队列的插入和处理通过关联到完成端口上以实现在IOCP线程池管理下异步处理;
Add以后投递完成消息,在完成端口上监听的线程受到消息以后读取数据并处理;
阅读全文
0 0
- 网狐棋牌(一) ServerKernel中的IQueueService接口分析
- 网狐棋牌(一) ServerKernel中的IQueueService接口分析
- 网狐棋牌(一) ServerKernel中的IQueueService接口分析
- 网狐棋牌代码分析(一)ServerKernel中的IQueueService接口分析
- 网狐棋牌代码分析(二) CQueueServiceEvent初步分析
- 网狐棋牌 麻将分析
- 网狐棋牌代码分析(三) 调度引擎初步分析
- 网狐棋牌代码分析(四)TimerEngined定时器分析660x不出鱼等
- 网狐棋牌(五) TCPSocketEnging分析
- 网狐棋牌(五) TCPSocketEnging分析
- 网狐棋牌(五) TCPSocketEnging分析
- 网狐棋牌游戏平台服务器架构设计分析
- 网狐棋牌游戏平台服务器架构设计分析
- 网狐棋牌游戏平台服务器架构设计分析
- 网狐棋牌游戏平台服务器架构设计分析
- 网狐棋牌游戏平台服务器架构设计分析
- 网狐棋牌(二) CQueueServiceEvent初步分析
- 网狐棋牌(三) 调度引擎初步分析
- 【源码解读】从ArrayList.class中解读为什么foreach中不能移除ArrayList元素
- Gitlab的API调用
- Postgresql常用的表字段操作语句以及其他一些SQL语句
- 了解消息组件Kafka
- hdu6214-最小割集中边数最少
- 网狐棋牌代码分析(一)ServerKernel中的IQueueService接口分析
- 非微信浏览器的h5支付demo
- vector用法及详解
- Redis_lesson8 Redis Hash常见操作
- Notification的使用(二)
- MongoDB常用操作
- 编译原理(3):词法分析
- PHP基础之时间和日期
- RN之React组件通信(五)