基于ACE的定时器队列实现

本文介绍了基于ACE库的定时器队列实现,通过封装Dispatcher、Driver和TimerQueue,简化使用接口,以适应不同应用需求。文章探讨了如何设计接口以隐藏ACE的依赖,并提供了一个分层结构的实现概述,包括添加、移除定时器和处理超时事件的方法。最后,提到了在实际项目中可能遇到的多线程同步问题以及如何处理。
摘要由CSDN通过智能技术生成

    定时器MMO中的作用不需要做过多的强调,对于大多数的游戏项目来说,都是按照linux内核定时器的原理自己实现的实时器队列,详细的技术描述可以见这里,已有高人将其翻译成了中文:http://www.linuxforum.net/forum/showthreaded.php?Cat=&Board=driver&Number=385224&page=0&view=collapsed&sb=5&o=all&vc=1

 

    虽然原理并不复杂,并且有linux的内核代码可直接拿来做参考,但编码测试仍会费上一点时间,并且还会涉及到效率、稳定性、移植性等各方面的问题,而且当我们只是想在平时学习用的测试代码中用上点定时器时,这个实现的代价还是有点高了,所以,这里便有了个尝试,把ACE中提供的几个定时器队列拿出来,接口重新做下封装,以符合我们大多数人平时的使用习惯。这样一个定时器队列组件的实现不会太复杂,效率也不会太差,一点点封装代码所能引起的BUG机会也会少很多。

 

    那就进入正题吧。

 

    ACE将定时器队列分成了三大部件:分派器Dispatcher,驱动器Driver和节点容器TimerQueue。分派器用来登记和取消事件处理器,驱动器用来发出“超时事件指示”,而节点

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值