Java 定时循环运行程序
Timer 和 ScheduledExecutorSeruvce 都能执行定时的循环任务,有函数 scheduleAtFixedRate。但是,如果任务运行时间较长,超过了一个周期时长,下一个任务就会被延缓执行。
例如代码:
public class ScheduledRunnableTest extends TimerTask {
public void run() {
try {
Thread.sleep(2000);
System.out.println(new Timestamp(System.currentTimeMillis()).toString());
} catch (InterruptedException e) {
e.printStackTrace();
}
} public static void main(String[] args) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new ScheduledRunnableTest(), 0, 1000);
}
}
运行结果为:
2014-07-31 13:12:30.002
2014-07-31 13:12:32.006
2014-07-31 13:12:34.006
2014-07-31 13:12:36.008
并不是希望的每秒运行一次。所以得重开线程执行,代码如下:
public class ScehduledThreadTest extends Thread{
public void run() {
try {
Thread.sleep(2000);
System.out.println(new Timestamp(System.currentTimeMillis()).toString());
} catch (InterruptedException e) {
e.printStackTrace();
}
} public static void main(String[] args) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
new ScehduledThreadTest().start();
}
},
0, 1000);
}
}
这样的结果就是:
2014-07-31 13:15:10.652
2014-07-31 13:15:11.652
2014-07-31 13:15:12.652
Java 定时循环运行程序的更多相关文章
- JAVA定时关机小程序
大一刚学java时候做的小程序.由于当时迅雷还没有下载完成关机,晚上要下很多学习资料.只有自己算时间然后通过shutdown命令设置时间关机. 当时通过shutwodn命令,想到能否通过java做一个 ...
- linux中启动 java -jar 后台运行程序
直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉.以下方法可让jar运行后一直在后台运行. 1. java -jar xxx.jar & 说明: 在末尾加入 ...
- 利用ant的javac任务来编译程序使用ant的java任务来运行程序
<?xml version="1.0" encoding="UTF-8"?> <project name="javaTest&quo ...
- bat脚本命令循环运行程序 ,然后指定时间退出。
@echo offtitle EcCheck // 显示标题:loopif "%time%" GTR "23:00.00" (exit) else goto t ...
- java定时重启电脑程序demo
下载地址:链接: https://pan.baidu.com/s/1HchKC0-gwDz-VU8eEQQMlw 提取码: 9fur
- Java 命令行运行java程序,出现“找不到或无法加载主类 ”的注意事项
引用:http://blog.chinaunix.net/uid-27106528-id-5209914.html 要在CMD命令行中使用java 运行java程序,关于出现 “找不到或无法加载主类 ...
- 如何在LINUX中开机、登陆、退出、定时、定期自动运行程序
1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /et ...
- Windows: 在系统启动时运行程序、定时计划任务、定时关机
lesca今天介绍一些让系统在启动时,而非登录时,加载用户自定义的应用程序或脚本的方法,推荐度从前到后依次递减. 1. Windows任务计划(task scheduler) 用户可以按以下步骤进行操 ...
- 使用Java编写并运行Spark应用程序
我们首先提出这样一个简单的需求: 现在要分析某网站的访问日志信息,统计来自不同IP的用户访问的次数,从而通过Geo信息来获得来访用户所在国家地区分布状况.这里我拿我网站的日志记录行示例,如下所示: 1 ...
随机推荐
- [转]Mysql连表之多对多
转自 回到顶部 连表多对多 可以理解成一夫多妻和一妻多夫. 男人表: nid name 1 xxx 2 yyy 3 zzz 女人表: nid name 1 aaa 2 bbb 3 ccc 要让两个表建 ...
- c++拷贝构造函数(翁恺c++公开课[26-27]学习笔记)
这节课在p26.拷贝构造中讲的很清楚,建议大家耐心的去看下. 什么时候会发生拷贝构造: 对象之间的初始化赋值 使用对象作为变量进行函数传参(通常使用引用来传参从而减去不必要的拷贝构造,提高效率和代码健 ...
- STM32新MCU
G0的出现完美的替换自家目前的F0系列而且有更好的性能和价格优势; STM32WL世界上首款LoRa Soc单片机嵌入了基于Semtech SX126x的经过特殊设计的无线电,该无线电提供两种功率输出 ...
- tcp连接建立和断开
TCP协议作为传输层主要协议之一,具有面向连接,端到端,可靠的全双工通信,面向字节流的数据传输协议. 1.TCP报文段 虽然TCP面试字节流,但TCP传输的数据单元却是报文段.TCP报文段分为TCP首 ...
- 使用 CocoaPods 遇到的问题记录
1. 在 Terminal 输入 Cocoapods 命令时,有时会一直等待,出现“Performing a deep fetch of the `master` specs repo to impr ...
- matlab学习 — 实现简单的爬虫
这里复杂的情况暂时不考虑..测试网址为pixiv的每日排行榜 = = url = 'https://www.pixiv.net/ranking.php?mode=daily' text = webre ...
- Flutter | 状态管理特别篇——Provide
前言 今天偶然发现在谷歌爸爸的仓库下出现了一个叫做flutter-provide的状态管理框架,2月8日才第一次提交,非常新鲜.在简单上手之后感觉就是一个字--爽!所以今天就跟大家分享一下这个新的状态 ...
- FTP的vsftpd.conf含义
# 设置为YES时vsftpd以独立运行方式启动,设置为NO时以xinetd方式启动 #(xinetd是管理守护进程的,将服务集中管理,可以减少大量服务的资源消耗) listen=YES # 同上,如 ...
- JavaScript高级程序设计(第3版)每章小结(1-5)
第一章 JavaScript的简介 第二章 在HTML中使用JavaScript 把JavaScript插入到HTML页面中要使用<Script>元素.使用这个元素可以把JavaScrip ...
- 四 SpringMVC与页面之间的参数传递&高级参数的绑定&日期类型的转换
参数传递: 1 原生方式:使用Servlet API , request.getParameter("id"); 2 直接将请求参数作为Controller中的形参: publ ...