一个时钟
Posted 秋哥v
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个时钟相关的知识,希望对你有一定的参考价值。
定时器应该包含哪些内容呢,
做一个定时器,即使用一个线程不断循环检测
一、设置时钟
SetTimer(uLong uTimerID,uint64 uTimerSpace,conststchar* szDes)
uTimerID定时器ID,唯一性,通过它回调函数,uTimerSpace 定时器调用间隔 定时器的描述信息
二、回调时钟函数
1、检测毫秒计时器
1.1、检测刻度是否错误
1.2、开始时刻
1.3、当前时刻
1.4、最后检测时刻
1.5、遍历时间刻度
1.5.1每一时刻都维护着一个定时器队列,使用while循环遍历当前时间刻度中所有待触发的定时器,
1.5.2触发定时器统一接口OnTimeFunc(pTimer):
定时器ID
时间间隔
调试信息
第一次时间
TimerAxis::OnTimeFuncEx(pTime)四种类型
1、CConnectionDrop::OnTimer(dwTimerID)
1、CConnectionLogOut::OnTimer(dwTimerID)
1、CPluginTimeProxy::OnTimer(dwTimerID)
4、CGlobalServer::Ontime(dwTimerID)
switch(dwTimerID)
queueNew()删除最晚进入的若干玩家,以便剩下的人数为每桌人数的整数倍
queueTable_New()给玩家简历桌子,用户上桌,补充机器人
queueEnd(ITableServer* pServer)
AutoOnTable(FreeRobotVec[s])
OnChair(pActor)用户上桌
OnUserEnter(pActor)
2、检测秒计时器
3、检测天计时器
三、关闭时钟
KillTimer(ulong dwTimerID,ITimeSink *pTimerSink)
dwTimerID 时钟ID,pTimerSink 时钟回调接口
四、加锁时钟
m_bLock=TRUE
五、解锁时钟
m_bLock=FALSE
以上是关于一个时钟的主要内容,如果未能解决你的问题,请参考以下文章
分布式系统概念 | 分布式时钟:物理时钟逻辑时钟Lamport 时间戳向量时钟版本向量