使用 Timer 进行任务调度
来源:互联网 发布:刘备是汉室宗亲吗 知乎 编辑:程序博客网 时间:2024/05/01 09:02
package com.huyd.xiancheng;
import java.util.Timer;
import java.util.TimerTask;
/**
*
* 使用 Timer 进行任务调度
*
* 使用 Timer 实现任务调度的核心类是 Timer 和 TimerTask。
* 其中 Timer 负责设定 TimerTask 的起始与间隔执行时间。
* 使用者只需要创建一个 TimerTask 的继承类,实现自己的 run 方法,然后将其丢给 Timer 去执行即可。
Timer 的设计核心是一个 TaskList 和一个 TaskThread。
Timer 将接收到的任务丢到自己的 TaskList 中,TaskList 按照 Task 的最初执行时间进行排序。
TimerThread 在创建 Timer 时会启动成为一个守护线程。
这个线程会轮询所有任务,找到一个最近要执行的任务,然后休眠,当到达最近要执行任务的开始时间点,
TimerThread 被唤醒并执行该任务。之后 TimerThread 更新最近一个要执行的任务,继续休眠。
Timer 的优点在于简单易用,但由于所有任务都是由同一个线程来调度,
因此所有任务都是串行执行的,同一时间只能有一个任务在执行,前一个任务的延迟或异常都将会影响到之后的任务。
*
* */
public class TimerDemo extends TimerTask{
private String name="";
public TimerDemo (String name){
super();
this.name=name;
}
@Override
public void run() {
System.out.println("name==>"+name);
}
/*
* schedule方法是安排指定的任务在指定的时间开始进行重复的固定延迟执行。
* 第一个时间是多少时间后执行,第二个是时间间隔
* */
public static void main(String[] args) {
Timer t1=new Timer();
long time1=1000;
long taktTime1=1*1000;
//执行第一个线程
t1.schedule(new TimerDemo("one"), time1, taktTime1);
long time2=2000;
long taktTime2=1*1000;
//执行第二个线程
t1.schedule(new TimerDemo("two"), time2, taktTime2);
}
}
import java.util.Timer;
import java.util.TimerTask;
/**
*
* 使用 Timer 进行任务调度
*
* 使用 Timer 实现任务调度的核心类是 Timer 和 TimerTask。
* 其中 Timer 负责设定 TimerTask 的起始与间隔执行时间。
* 使用者只需要创建一个 TimerTask 的继承类,实现自己的 run 方法,然后将其丢给 Timer 去执行即可。
Timer 的设计核心是一个 TaskList 和一个 TaskThread。
Timer 将接收到的任务丢到自己的 TaskList 中,TaskList 按照 Task 的最初执行时间进行排序。
TimerThread 在创建 Timer 时会启动成为一个守护线程。
这个线程会轮询所有任务,找到一个最近要执行的任务,然后休眠,当到达最近要执行任务的开始时间点,
TimerThread 被唤醒并执行该任务。之后 TimerThread 更新最近一个要执行的任务,继续休眠。
Timer 的优点在于简单易用,但由于所有任务都是由同一个线程来调度,
因此所有任务都是串行执行的,同一时间只能有一个任务在执行,前一个任务的延迟或异常都将会影响到之后的任务。
*
* */
public class TimerDemo extends TimerTask{
private String name="";
public TimerDemo (String name){
super();
this.name=name;
}
@Override
public void run() {
System.out.println("name==>"+name);
}
/*
* schedule方法是安排指定的任务在指定的时间开始进行重复的固定延迟执行。
* 第一个时间是多少时间后执行,第二个是时间间隔
* */
public static void main(String[] args) {
Timer t1=new Timer();
long time1=1000;
long taktTime1=1*1000;
//执行第一个线程
t1.schedule(new TimerDemo("one"), time1, taktTime1);
long time2=2000;
long taktTime2=1*1000;
//执行第二个线程
t1.schedule(new TimerDemo("two"), time2, taktTime2);
}
}
0 0
- 使用 Timer 进行任务调度
- 使用Java Timer以及quartz调度任务
- 简单的使用java Timer调度任务
- 任务调度--使用java.util.Timer实现
- 使用quartz进行任务调度
- 使用 Timer 实现任务调度(定时任务)
- 在Spring中使用 Java Timer 调度任务
- 使用Timer类去调度任务——java
- 使用Timer+servletListener实现web服务的任务调度
- 定时任务调度之Timer---综合使用小案例
- Spring中使用CronTrigger进行任务调度
- Yarn中使用FairScheduler进行任务调度
- 使用Quartz进行作业任务调度
- Timer和Quartz任务调度
- JAVA 任务调度timer类
- 任务调度 Timer ScheduledExecutor Quartz
- 任务调度之Timer、TimerTask
- 定时任务调度之Timer
- 程序员必读的书籍
- Logic java 第二章
- Android Studio如何集成Genymotion
- Winform 移植到 WPF 中 窗体变丑 解决方案
- 《深度学习C++对象模型》学习笔记2:构造函数语意学
- 使用 Timer 进行任务调度
- alsa_aplay 出现 Warning: rate is not accurate
- A mid-summer night’s dream uva+二分/中位数
- poj 1325 二分图最小点覆盖(机器模式的选择)
- sizeof对字符数组字符串使用
- eclipse最新dropins安装插件
- linux驱动开发学习路线
- velocity 单引号和双引号转义
- poj 1042 贪心