https://mp.weixin.qq.com/s/Z4JJhZ_jL1lqF1nf_orq9A

 
简单介绍Timer的实现。
 
 
1. 基本功能
 
实现定时器的功能。
 
2. Timer
 
实现一个静态装入的定时器:
1) initCount
 
定时器的初始值,静态配置,不可动态改变。
 
2) maxInfligh
 
定时器事件的种类。
 
3) io
 
a. start:某个定时器事件需要启动定时器,io.start.bits为这个定时器事件的ID;
b. stop:某个定时器事件需要停止定时器,io.stop.bits为这个定时器事件的ID;
c. timeout:输出定时器是否超时,以及超时的定时器事件的ID;
 
4) inflight
 
记录各个定时器事件是否需要启动定时器。
 
5) countdown
 
倒数计数器。
 
6) active
 
定时器是否是激活状态,即正在倒计时的状态。
只需要有一个定时器事件要求开始计时,定时器即处于激活状态。
 
7) 倒计时
 
当定时器激活时,不停的进行倒计时:
 
8) 开始计时
 
当io.start.valid为真时,标记该定时器事件对应的inflight比特为真,并且把countdown置位初始值,开始倒计时。
 
9) 停止计时
 
当io.stop.valid为真时,标记该定时器事件对应的inflight比特为假。这个动作不一定会停止定时器。
 
10) 超时
 
当定时器处于激活状态,并且countdown倒数到0时,定时器超时。
 
11) assert
 
意思是说:不能停止没有事先要求启动的定时器事件。
 
个人认为,针对逆否命题进行assert比较好理解,即:
 
 
3. SimpleTimer
 
简单的定时器。不考虑定时器事件,只提供一个开始和停止控制。
 
1) io
 
a. start:开始定时器;
b. stop:停止定时器;
c. timeout:定时器是否超时;
 
2) 开始计时
 
当io.start为真时,定时器激活,开始从initCount - 1倒计时。
 
3) 停止计时
 
当io.stop为真时,定时器转入未激活状态。
 
4) 超时
 
 
4. DynamicTimer
 
定时时长可以动态输入的定时器:
 
1) io
 
其中,period为输入的定时时长。
 
2) 开始计时
 
 
3) 停止计时
 
要求停止,或者倒数到0时,停止计时。
 
4) 倒计时
 
 
5) 超时
 
 
5. 附录
 

Rocket - util - Timer的更多相关文章

  1. 使用java.util.Timer来周期性的执行制定的任务

    使用java.util.Timer来周期性的执行制定的任务 public class HandlerTest extends Activity { int[] images = new int[] { ...

  2. java.util.Timer demo good

    package timer; import java.util.Date; import java.util.Timer; import java.util.TimerTask; import org ...

  3. java.util.Timer类似于闹钟定时做任务

    在web中实现任务计划,相当于实现闹钟的功能,要完成2个步骤: 1.定时器的设置: 2.对这个定时器的启动运行和停止进行实时监听 java.util.Timer定时器,实际上是个线程,定时调度所拥有的 ...

  4. 任务调度--使用java.util.Timer实现

    任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务. 举个例子,比如说我们希望一个系统每周日晚上9点都将数据库文件备份一次,这时我们就可以使用任务调度来实现.为了更加的方便,我们需要 ...

  5. Java基础复习--java.util.Timer定时任务

    在java中,Timer类主要用于定时性.周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下. (1)sche ...

  6. java.util.Timer简介

    Timer是用于管理在后台执行的延迟任务或周期性任务,其中的任务使用java.util.TimerTask表示.任务的执行方式有两种: 按固定速率执行:即scheduleAtFixedRate的两个重 ...

  7. java.util.Timer分析源码了解原理

    Timer中最主要由三个部分组成: 任务 TimerTask .  任务队列: TaskQueue queue 和 任务调试者:TimerThread thread 他们之间的关系可以通过下面图示: ...

  8. java倒计时使用java.util.Timer实现,使用两个线程,以秒为单位

    public class Countdown3 { private int lin; private int curSec; public Countdown3(int lin)throws Inte ...

  9. Rocket - util - Annotations

    https://mp.weixin.qq.com/s/7C8ZmPpwAqFqyKjL9K40Fg   介绍util中定义的注解(Annotations).   ​​   1. Annotation ...

随机推荐

  1. 前端【JS】,深入理解原型和原型链

    对于原型和原型链,相信有很多伙伴都说的上来一些,但有具体讲不清楚.但面试的时候又经常会碰到面试官的死亡的追问,我们慢慢来梳理这方面的知识! 要理解原型和原型链的关系,我们首先需要了解几个概念:1.什么 ...

  2. SpringBoot:整合SpringSecurity

    目录 SpringSecurity(安全) 搭建环境 使用 用户认证和授权 注销及权限控制 记住我及登录页面定制 SpringBoot 整合 SpringSecurity: 用户认证和授权.注销及权限 ...

  3. 王颖奇 20171010129《面向对象程序设计(java)》第十三周学习总结

      实验十三  图形界面事件处理技术 实验时间 2018-11-22 1.实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作机制: (3) 掌握事件处理的基 ...

  4. 【带着canvas去流浪(15)】threejs fundamentals翻译系列1-scene graph

    示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端>原创博文目录 华为云社区地址:[你要的前端打怪升级指南] 目录 ...

  5. 【Hadoop离线基础总结】Hue与Hive集成

    目录 1.更改hue的配置hue.ini 2.启动hive的metastore以及hiveserver2服务 3.启动hue进程,查看Hive是否与Hue集成成功 1.更改hue的配置hue.ini ...

  6. 基于情感词典的python情感分析

    近期老师给我们安排了一个大作业,要求根据情感词典对微博语料进行情感分析.于是在网上狂找资料,看相关书籍,终于搞出了这个任务.现在做做笔记,总结一下本次的任务,同时也给遇到有同样需求的人,提供一点帮助. ...

  7. 初探numpy

    安装numpy 通过python pip安装numpy pip install numpy numpy ndarray对象 创建ndarray对象只需调用numpy的array函数即可 numpy.a ...

  8. threading模块—Python多线程编程

    Threading 模块 threading 模块除了提供基本的线程和锁定支持外,还提供了更高级别.功能更全面的线程管理.threading 模块支持守护线程,其工作方式是:守护线程一般是一个等待客户 ...

  9. Spring Boot集成H2数据库

    需求 平时学习的时候,涉及到一些连接数据库相关的操作,经常需要初始化本地数据库,比如装个MySQL,初始化一些脚本,比较麻烦,H2是内存数据库,Spring Boot可以在应用启动的时候对H2数据库初 ...

  10. Linux下几个与磁盘空间和文件尺寸相关的命令

    大家好,我是良许. 硬盘是计算机非常重要的一个部件,不管是代码,还是 UI .声音.文档,抑或是没人时偷偷看的小视频,都需要保存在硬盘里. 对于很多 Linux 服务器,会进行很多的编译操作.而编译操 ...