`
stephen830
  • 浏览: 3032572 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Netty工具类HashedWheelTimer

 
阅读更多

 

Netty工具类HashedWheelTimer

 

http://my.oschina.net/haogrgr/blog/489320

 

netty中的Timer管理,使用了的Hashed time Wheel的模式,Time Wheel翻译为时间轮,是用于实现定时器timer的经典算法。

我们看看netty的HashedWheelTimer的一个测试的例子,先new一个HashedWheelTimer,然后调用它的newTimeout方法,这个方法的声明是这样的:


    
/**
     * Schedules the specified {@link TimerTask} for one-time execution after
     * the specified delay.
     *
     * @return a handle which is associated with the specified task
     *
     * @throws IllegalStateException if this timer has been
     *                               {@linkplain #stop() stopped} already
     */

    
Timeout newTimeout(TimerTask task, long delay, TimeUnit unit);

这个方法需要一个TimerTask对象以知道当时间到时要执行什么逻辑,然后需要delay时间数值和TimeUnit时间的单位,像下面的例子中,我们在timer到期后会打印字符串,第一个任务是5秒后开始执行,第二个10秒后开始执行。


import org.jboss.netty.util.HashedWheelTimer;
import org.jboss.netty.util.Timeout;
import org.jboss.netty.util.Timer;
import org.jboss.netty.util.TimerTask;


import java.util.concurrent.TimeUnit;

/**
 * 12-6-6 下午2:46
 *
 * @author jiaguotian Copyright 2012 Sohu.com Inc. All Rights Reserved.
 */

public class TimeOutTest {
    
public static void main(String[] argv) {
        
final Timer timer = new HashedWheelTimer();
        timer
.newTimeout(new TimerTask() {
            
public void run(Timeout timeout) throws Exception {
                
System.out.println("timeout 5");
            
}
        
}, 5, TimeUnit.SECONDS);
        timer
.newTimeout(new TimerTask() {
            
public void run(Timeout timeout) throws Exception {
                
System.out.println("timeout 10");
            
}
        
}, 10, TimeUnit.SECONDS);
    
}
}

 

 

 

分享到:
评论

相关推荐

    时间轮Java代码

    在Java中,我们可以使用Netty框架中的时间轮实现来优化这类任务。本文将深入探讨时间轮的概念、工作原理,以及如何在Java中,特别是基于Netty框架,实现一个时间轮。 **时间轮简介** 时间轮是一种数据结构,最早由...

    netty-util:netty时间轮原始码解析-源码解析

    在 Netty 中,`netty-util` 模块提供了许多实用工具类,其中包括时间轮(TimeWheel)数据结构。时间轮是一种高效实现定时任务调度的数据结构,它在很多场景下替代了传统的基于 HashMap 和 Timer 的定时器。 时间轮...

    JAVA 实现延迟队列的方法

    HashedWheelTimer 是 Netty 中的一个基础工具类,主要用来高效处理大量定时任务。该方案的优点是高效处理大量定时任务,缺点是需要自己实现定时任务的逻辑。 JAVA 实现延迟队列的方法有多种,选择哪种方案需要根据...

    基于gcc的stm32环境搭建源码+文档说明.zip

    基于gcc的stm32环境搭建源码+文档说明.zip,个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做毕业设计的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业,代码资料完整,下载可用。 基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的stm32环境搭建源码+文档说明.zip基于gcc的

    锂电池分选机:欧姆龙NJ501-1500与威伦通触摸屏驱动的先进工业自动化技术

    内容概要:本文详细介绍了欧姆龙NJ501-1500锂电池分选机的技术特点和工艺流程。该设备采用国际IEC 61131标准编程模式,具备伺服运动控制、高创直线电机DDR高速同步运动控制等功能,能进行电压测试、厚度测量等操作。设备配备雅马哈和ABB机械手,实现多轴协同作业,同时具备故障记录、产量统计及OEE功能,确保高效、精准的电池分选。此外,威伦通触摸屏提供的优质程序模板提升了编程效率。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是关注锂电池生产和分选设备的专业人士。 使用场景及目标:适用于需要提升锂电池分选效率和质量的企业,旨在帮助技术人员理解和应用先进的工业自动化技术,提高生产线的自动化水平和管理水平。 其他说明:文中附有详细的PLC程序、触摸屏程序、变量地址分配表、IO分配表、雅马哈机械手程序、ABB六轴机器人程序及电气原理图等资料,便于深入研究和实施。

    毕业论文-超级图文最新资源包及上传位置说明-整站商业源码.zip

    毕业论文-超级图文最新资源包及上传位置说明-整站商业源码.zip

    毕业论文-【超人】积分商城 5.2.26-整站商业源码.zip

    毕业论文-【超人】积分商城 5.2.26-整站商业源码.zip

    免费0积分--gc10-det yolo格式

    免费0积分--gc10-det yolo格式

    Abaqus软件应用于管中管系统深水管非线性动力分析:基于Tube-to-tube ITT单元的数值模拟

    内容概要:本文深入探讨了Abaqus软件在管中管系统深水管非线性动力分析中的应用,特别是基于Tube-to-tube ITT单元的数值模拟研究。文章首先介绍了管中管系统的基本概念及其在深海石油、天然气开发中的重要性。接着阐述了Abaqus软件的功能特点及其在复杂工程问题中的优势。随后详细讲解了如何在Abaqus中建立管中管系统的模型,包括定义材料属性、设定几何尺寸、处理接触关系等。还讨论了设置分析步和载荷的方法,强调了非线性动力分析的必要性。最后展示了求解与结果分析的具体步骤,并提供了相关代码片段以辅助理解和操作。 适合人群:从事海洋工程、石油天然气开发等领域工作的工程师和技术人员,尤其关注深水管系统非线性动力分析的专业人士。 使用场景及目标:适用于需要深入了解并掌握Abaqus软件在管中管系统深水管非线性动力分析中的应用方法,旨在提升对这类复杂系统的认识水平,优化设计方案,确保工程安全可靠。 其他说明:文中提供的代码片段有助于读者更快上手实际操作,使理论与实践相结合,便于后续工作中灵活运用所学知识。

    【电子设计竞赛】单相用电器分析监测装置设计:实现电器类别与工作状态的实时识别了文档的核心内容

    内容概要:本文档是2017年全国大学生电子设计竞赛的试题,针对单相用电器分析监测装置的设计与制作提出了具体任务和要求。该装置需具备学习和分析监测两种模式,在学习模式下测试并存储电器特征参量,在分析监测模式下实时指示用电器类别和工作状态。基本要求包括电器电流范围、可识别的电器工作状态数、响应时间、最小电流电器的自制等。发挥部分则鼓励提高装置性能,如学习功能优化、增强识别能力、低功耗设计以及无线传输等功能。文档还详细规定了参赛注意事项,如参赛队伍组成、比赛时间安排、纪律要求等,并给出了评分标准,涵盖设计报告、基本要求完成情况及发挥部分的表现; 适合人群:参加全国大学生电子设计竞赛的本科生及高职高专学生,特别是对电子设计、单相用电器监测感兴趣的团队; 使用场景及目标:①作为竞赛指南,帮助参赛队伍明确设计目标和要求;②指导参赛队伍进行单相用电器分析监测装置的设计与制作,确保满足竞赛的基本要求和发挥部分的要求; 其他说明:文档强调了参赛纪律,要求参赛者必须是有正式学籍的全日制在校生,并且在竞赛期间只能在学校指定场地内进行设计制作,不得与他人交流。此外,文档还提供了详细的评分标准,以确保评审过程的公平性和透明度。

    GB/T-7714-2015学位论文zotero格式更改csl文件

    GB/T-7714-2015学位论文zotero格式更改csl文件

    毕业论文-春磊引导页-极乐二次修改-整站商业源码.zip

    毕业论文-春磊引导页-极乐二次修改-整站商业源码.zip

    大学生就业指导.pdf

    大学生就业指导.pdf

    FIDIA数控主轴伺服驱动调试手册.pdf

    FIDIA数控主轴伺服驱动调试手册.pdf

    毕业论文-MIP建站平台 1.2.2加密版-整站商业源码.zip

    毕业论文-MIP建站平台 1.2.2加密版-整站商业源码.zip

    IDC数据中心布局与动力规划.pdf

    IDC数据中心布局与动力规划.pdf

    毕业论文-H5手机转盘活动游戏页面源码-整站商业源码.zip

    毕业论文-H5手机转盘活动游戏页面源码-整站商业源码.zip

    Python语言特性详解:函数参数传递、类与实例变量、装饰器及单例模式等核心技术

    内容概要:本文档涵盖了Python编程语言的多个重要特性和概念,包括函数参数传递、元类、静态方法与类方法的区别、类变量与实例变量的关系、自省特性、字典推导式、单下划线和双下划线的意义、字符串格式化、迭代器和生成器、`*args`和`**kwargs`的使用、面向切面编程(AOP)与装饰器、鸭子类型、函数重载、新式类与旧式类的区别、`__new__`和`__init__`的区别、单例模式的实现、作用域规则、线程全局锁(GIL)、协程、闭包、lambda函数、函数式编程、拷贝的区别、垃圾回收机制、列表操作、`is`关键字、文件读取方法、Python2与Python3的区别等。此外,还包括了一些操作系统、数据库、网络、数据结构等方面的知识点。 适合人群:具备一定编程基础,特别是对Python语言有一定了解的研发人员,尤其是工作1-3年的开发者。 使用场景及目标:①帮助读者深入了解Python语言的核心特性和高级用法;②为开发者提供解决实际编程问题的具体方法和技术;③为准备面试的程序员提供参考,涵盖常见的面试知识点。 其他说明:文档不仅提供了理论知识,还附带了大量的代码示例,便于读者理解和实践。部分内容链接了外部资源,供读者进一步深入学习。文档内容广泛,既适合日常编程学习,也适合面试准备。

    毕业论文-qiyeseo-整站商业源码.zip

    毕业论文-qiyeseo-整站商业源码.zip

    yolov5-simam

    加入注意力机制simam

Global site tag (gtag.js) - Google Analytics