timer.scheduleAtFixedRate和timer.schedule的实验
基础代码:
Calendar currentTime = Calendar.getInstance();
currentTime.setTime(new Date());
int currentHour = currentTime.get(Calendar.SECOND);
currentTime.set(Calendar.SECOND, currentHour + 20);//第一(大于20秒):currentHour + 20;第二(小于20秒):currentHour - 20;第三(等于当前):currentHour
currentTime.set(Calendar.MILLISECOND, 0);
Date NextHour = currentTime.getTime();
解释:
NextHour
1*60*1000:周期为一分钟
-----------------------------------------------------------------------------------------------------------------------
1、timer.scheduleAtFixedRate(task, firstTime, period)的实验
timer.scheduleAtFixedRate(new MyHourOnlineTask(event.getServletContext()),NextHour,1*60*1000);
实验结果:
假设条件:项目启动ok后的时间为2015-01-08 10:00:00!
第一:2015-01-08 10:00:20时定时任务会执行一次,之后从2015-01-08 10:00:20开始计算,每隔1分钟执行一次。
第二:2015-01-08 10:00:00时定时任务会执行一次,之后从2015-01-08 10:00:40开始计算,每隔1分钟执行一次。
第三:2015-01-08 10:00:00时定时任务会执行一次,每隔1分钟执行一次。
备注 timer.scheduleAtFixedRate(new MyHourOnlineTask(event.getServletContext()),0,1*60*1000);时,2015-01-08 10:00:00时定时任务会执行一次,每隔1分钟执行一次。
2、timer.schedule(task, firstTime, period)的实验
实验结果:
假设条件:项目启动ok后的时间为2015-01-08 10:00:00!
第一:2015-01-08 10:00:20时定时任务会执行一次,之后从2015-01-08 10:00:20开始计算,每隔1分钟执行一次。
第二:2015-01-08 10:00:00时定时任务会执行一次,每隔1分钟执行一次。
第三:2015-01-08 10:00:00时定时任务会执行一次,每隔1分钟执行一次。
备注 timer.schedule(new MyHourOnlineTask(event.getServletContext()),0,1*60*1000);时,2015-01-08 10:00:00时定时任务会执行一次,每隔1分钟执行一次。
timer.scheduleAtFixedRate和timer.schedule的实验的更多相关文章
- Storm-源码分析- timer (backtype.storm.timer)
mk-timer timer是基于PriorityQueue实现的(和PriorityBlockingQueue区别, 在于没有阻塞机制, 不是线程安全的), 优先级队列是堆数据结构的典型应用 默认情 ...
- Forms.Timer、Timers.Timer、Threading.Timer的研究
.NET Framework里面提供了三种Timer System.Windows.Forms.Timer System.Timers.Timer System.Threading.Timer 一.S ...
- schedule与scheduleAtFixedRate之Timer源码分析
执行Timer任务调度方法有如下几种: 这些方法最后调用的都是这个方法: private void sched(TimerTask task, long time, long period) 这个 ...
- java定时任务Timer/scheduleAtFixedRate
Timer类是用来执行任务的类,定时器 scheduleAtFixedRate模式可以用,在这个模式下,Timer会尽量的让任务在一个固定的频率下运行. 参考:http://swiftlet.net/ ...
- [dpdk] TSC , HPET, Timer, Event Timer,RDTSCP
关于dpdk timer跨越CPU core调度的准确性问题 首先dpdk的timer接口里边使用 cpu cycle来比较时间.根据之前的内容 [dpdk] dpdk --lcores参数 当一个E ...
- 简单理解java中timer的schedule和scheduleAtFixedRate方法的区别
timer的schedule和scheduleAtFixedRate方法一般情况下是没什么区别的,只在某个情况出现时会有区别--当前任务没有来得及完成下次任务又交到手上. 我们来举个例子: 暑假到了老 ...
- Timer TimerTask schedule scheduleAtFixedRate
jdk 自带的 timer 框架是有缺陷的, 其功能简单,而且有时候它的api 不好理解. import java.util.Date; import java.util.Timer; import ...
- Timer的schedule和scheduleAtFixedRate方法的区别解析(转)
在java中,Timer类主要用于定时性.周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下 (1)sched ...
- JAVA随笔篇一(Timer源代码分析和scheduleAtFixedRate的使用)
写完了基础篇,想了非常久要不要去写进阶篇.去写JSP等等的用法.最后决定先不去写.由于自己并非JAVA方面的大牛.眼下也在边做边学,所以决定先将自己不懂的拿出来学并记下来. Timer是Java自带的 ...
随机推荐
- PHPCMS联动菜单的调用函数get_linkage方法详解
v9联动菜单调用方法[注意此为内容页调用方法 {get_linkage($areaid,1,' >> ',1)} 显示效果: 湖北省 >> 武汉市 >> 汉阳区 [ ...
- ArcServer JS API开发离线部署方法
1. 下载ArcGIS API for JavaScript 3.6 Library. (地址:http://support.esrichina.com.cn/uploadfile/Javascr ...
- LoadTest内存和线程Troubleshooting实战
在端午节放假的三天中,我对正在开发的 Service 进行了 LoadTest,尝试在增大压力的条件下发现问题. 该 Service 为独立进程的 WCF 服务,宿主于 WindowsService, ...
- Emmet语法预览
Emmet 是一个能提高前端开发效率的编辑器插件,支持 Sublime,Atom,TextMate,Nodepad++ 等主流编辑器.Emmet 定义了一些缩写,当我们输入缩写代码后,按展开键(默认是 ...
- paip.导入数据英文音标到数据库mysql为空的问题之道解决原理
paip.导入数据英文音标到数据库mysql为空的问题之道解决原理 #---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙, E ...
- javascript基础08
发现今天居然没有要写,那我就写写之前做的笔记吧. 这是事件的深入: 拖拽逻辑: 第一个: onmousedown : 选择元素 第二个: onmousemove : 移动元素 第三个:onmouseu ...
- const成员函数
尽管函数名和参数列表都相同,void foo( ) const成员函数是可以与void foo( )并存的,可以形成重载! 我们假设调用语句为obj.foo(),如果obj为non-const对象,则 ...
- Js 数据容量单位转换(kb,mb,gb,tb)
function bytesToSize(bytes) { if (bytes === 0) return '0 B'; var k = 1000, // or 1024 sizes = ['B', ...
- django文件上传下载
views: def mgmt_files(request): #列出树形目录,上传文件页面 if request.method == 'POST': path_root = "D:\\py ...
- 利用python自动清除Android工程中的多余资源
我们直接在公司项目中使用,效果良好! 分享出脚本代码,希望对Android研发的同学有帮助. 提示,初学python,开发环境是Sublime Text 2,直接Ctrl+B的,其他环境下没调试过.应 ...