商铺名称:厦门光沃自动化设备有限公司
联系人:吴(先生)
联系手机:
固定电话:
企业邮箱:1878187406@qq.com
联系地址:厦门市海沧区沧湖东一里海景奥斯卡
邮编:361000
联系我时,请说是在泵阀网上看到的,谢谢!
DIO216时间轮可参考时钟进行理解,秒针(Seconds wheel)转一圈,则分针(Minutes wheel)走一格,分针(Minutes wheel)转一圈,则时针(Hours wheel)走一格。随着,时间的流逝,任务不断从上层流下下一层,最终到达秒针轮上,当秒针走到时执行。
如上所示,时间轮大小为8格,秒针1s转动一格,其每一格所指向的链表保存着待执行任务。比如,如果当前指针指向1,要添加一个3s后执行的任务,由于1+3=4,即在第4格的链表中添加一个任务节点即可。如果要添加一个10s后执行的任务,10+1=11,超过了秒针轮范围,因此需要对8取模11 % 8 = 3,即,会把这个任务放到分针轮上3对应的链表上,之后再从分针轮把任务丢到秒针轮上进行处理。也即,**秒针轮(Seconds wheel)**即保存着最近将要执行的任务,随着时间的流逝,任务会慢慢的从上层流到秒针轮中进行执行。
优点:加锁粒度较小,只需要加一个格子即可,一个格子对应一串链表;适合高并发场景
缺点:不好删除
这里介绍两种定时器实现方案,一种是简单实现方案,另一种是skynet较为复杂的实现。
DIO216
DIO216