Java Timer类
来源:互联网 发布:准备配置windows很久 编辑:程序博客网 时间:2024/04/28 14:34
使用java中的Timer实现任务调度的核心类是Timer和TimerTask。其中Timer负责设定TimerTask的起始与结束时间。使用者只需要创建一个TimerTask的继承类,实现自己的run方法,然后将其丢给Timer去执行。(如下实例:)
package com.yc.quartz.example;import java.util.Timer;import java.util.TimerTask;/** * @author Chris * */public class TimerTest extends TimerTask {private String jobName = "";public TimerTest(String jobName) {this.jobName = jobName;}@Overridepublic void run() {System.out.println("execute " + jobName);}public static void main(String[] args) {Timer timer = new Timer();long delay1 = 1 * 1000;long period1 = 1000;// 从现在开始 1 秒钟之后,每隔 1 秒钟执行一次 job1timer.schedule(new TimerTest("job1"), delay1, period1);long delay2 = 2 * 1000;long period2 = 2000;// 从现在开始 2 秒钟之后,每隔 2 秒钟执行一次 job2timer.schedule(new TimerTest("job2"), delay2, period2);}}
运行后的结果为:
execute job1execute job1execute job2execute job1execute job1execute job2
Timer 的设计核心是一个TaskList和TaskThread。
Timer将接收到的任务丢到自己的TaskList中,TaskList按照Task的最初执行时间进行排序。
TaskThread在创建Timer时会启动成为一个守护线程。这个线程会轮询所有任务,找到一个最近要执行的任务,然后休眠,当到达最近要执行任务的开始时间点TaskThread被唤醒并执行该任务。之后TimerThread更新最近一个要执行的任务继续休眠。
Timer的优缺点 :
优点:Timer的优点在于简单易用。
缺点:Timer的所有任务都是由同一个线程调度的,因此所有任务都是串行执行的。同一时间只能有一个任务在执行,前一个任务的延迟或异常都将会影响到之后的任务。
转载自:http://blog.csdn.net/hehexiaoyou/article/details/23428791
阅读全文
0 0
- Java学习 Timer类
- java Timer 类
- [java]Timer类
- Timer 定时器类 java
- Java中的timer类
- Java中的Timer类
- Java--Timer类研究
- java timer类
- Java Timer类小结
- java之Timer类
- Java Timer类
- java.util.Timer工具类
- JAVA 任务调度timer类
- java类Timer和TimerTask
- java 计时器线程 Timer类
- Java中Timer类使用
- Java Timer
- JAVA [Timer]
- 人生中第一份工作的一些思考
- [Noip模拟题]PermRLE
- 蓝桥杯--小明和他的表弟
- 记忆网络(译)
- 判断数组
- Java Timer类
- 野生码农的架构实践
- Unity Shader
- Spring装配Bean之组件扫描和自动装配
- QT QHostAddress类
- 无限大地图:lightmap拆分
- day74_oracle04_笔记
- 彻底了解构建 JSON 字符串的三种方式
- 主线程等待子线程执行结束后再执行的实现方式