一个Hash Wheel Timer是一个环形结构,可以想象成时钟,分为很多格子,一个格子代表一段时间(越短Timer精度越高),并用一个List保存在该格子上到期的所有任务,同时一个指针随着时间流逝一格一格转动,并执行对应List中所有到期的任务。

这个类一般用来处理大量的定时任务且任务对时间精度要求相对不高,  比如链接超时管理等场景, 缺点是,  内存占用相对较高.该类中有两个重要的参数

Tick Duration:即一个格子代表的时间,默认为100ms,因为IO事件不需要那么精确;

Ticks per Wheel (Wheel Size):一个Wheel含有多少个格子,默认为512个,如果任务较多可以增大这个参数.

public class HashedWhellTimerTest {

static Timer timer = new HashedWheelTimer(50L,TimeUnit.MILLISECONDS,512);

public static void main(String[] args) {

TimerTask task = new TimerTask() {

@Override

public void run(Timeout timeout) throws Exception {

System.out.println("---run service-----");

//任务执行完成后再把自己添加到任务solt上

addTask(this);

}

};

addTask(task);

}

public static void addTask(TimerTask task){

//根据时长把task任务放到响应的solt上

timer.newTimeout(task,2,TimeUnit.SECONDS);

}

}

参考:

https://blog.csdn.net/wangyang_software/article/details/54135704

https://blog.csdn.net/nmgrd/article/details/77199666

JAVA netty 定时任务_Netty HashedWheelTimer 定时任务调用相关推荐

  1. java netty 日志_Netty日志处理

    ## 9.1.1 Java的日志系统 java领域存在多种日志框架,目前常用的日志框架包括Log4j,Log4j 2,Commons Logging,Slf4j,Logback,Jul.这些框架中可以 ...

  2. java netty教程_Netty学习教程之基础使用篇

    什么Netty? Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 也就是说,Nett ...

  3. spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java

    spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java spring默认定时任务的使用 package zhangphil.demo;impor ...

  4. 定时任务:创建静态定时任务、动态定时任务

    定时任务有三种实现 1 jdk自带的定时任务 2 Quartz插件实现的定时任务,需要引入额外的包 3 SpringTask定时调度,是对jdk的再一次封装,不用引入其他包了,用spring的包就自带 ...

  5. SpringBoot中定时任务与异步定时任务的实现

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...

  6. java 实现违章_基于JAVA的车辆违章查询数据调用代码实例

    基于JAVA的车辆违章查询数据调用代码实例 代码描述:基于JA V A的车辆违章查询数据调用代码实例 相关平台:聚合数据 import java.io.BufferedReader; import j ...

  7. java 执行cmd 堵塞_java中调用cmd命令被阻塞无法返回和继续执行

    在项目中用到了数据库的备份和恢复功能,就通过java的Runtime.getRuntime().exec()来调用cmd或者linux命令来导出和导入.sql文件.但是在执行恢复时,程序一直被阻塞,没 ...

  8. Java如何通过WSDL文件来调用这些web service

    下面我们来看Java如何通过WSDL文件来调用这些web service: 注意,以下的代码并没有经过真正的测试,只是说明这些情况,不同版本的Axis相差很大,大家最好以apache网站上的例子为准, ...

  9. linux 7添加定时任务,Centos7 添加定时任务2

    crontab配置文件 /var/spool/cron/ 该目录下存放的是每个用户(包括root)的crontab任务,文件名以用户名命名 /etc/cron.d/ 这个目录用来存放任何要执行的cro ...

最新文章

  1. 一文盘点2019年AI领域都发生了什么
  2. [Ext JS 4] 实战Chart 协调控制(单一的坐标,两个坐标)
  3. Ubuntu迁移/boot卷
  4. 全面剖析支付宝服务窗功能二次开发
  5. 获取前一天的时间安排表_【央美考研】2021年硕士研究生招生入学考试时间安排...
  6. C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。
  7. 精选免费可商用素材网站,包括PPT模板、PSD、矢量图等等
  8. Sipp命令行参数说明
  9. 用EndNote引用文献出现‘参数错误’解决方式
  10. TP50 TP90 TP99 TP999 详细说明
  11. Java 解析xml 使用SAXReader获取所有标签的key和value的代码实例
  12. RT-Thread系统 STM32 DAC设备改进,直接调用系统DAC驱动函数设置输出电压
  13. [NOI2017]蔬菜
  14. css33d图片轮播_通过html+css3实现图片轮播切换
  15. 古之成大事者必经三境界--王国维《人间词话》
  16. ps磨皮插件portraiture
  17. 超实用的自动化测试平台推荐
  18. BITMAP CONVERSION FROM ROWIDS
  19. System Verilog约束块(constrain block)控制和随机变量的随机属性控制
  20. WiFi无线干扰器(无需知道无线密码)

热门文章

  1. C++之预处理命令以及宏定义
  2. web前端基础(02html表格)
  3. oracle一体机诊断内存,Oracle内存诊断
  4. 一段顺序颠倒能读通的文字_钓鱼也有逻辑顺序,总是钓不到鱼的原因就在这里...
  5. 我是如何学会不再担心和喜欢SQL中的NULL的
  6. .net core精彩实例分享 -- 泛型和集合
  7. 使用Swagger,ApiExplorer和NSwag掌握ASP.NET Core和ABP中的外部Web API
  8. Fedora 31 及以后版本将不再支持 32 位内核已实锤
  9. 客户端更新功能实现_exlive1.0|监控客户端功能更新
  10. hdfs的副本数为啥增加了_设置hdfs副本数 dfs.replication