Java多线程任务定时调度类和方法
Timer类
-
Timer:类似闹钟的功能,本身实现的就是一个线程
TimerTask类
-
TimerTask:一个抽象类,实现了Runnable接口,具备多线程能力
Timer类说明
-
供将来在后台线程中执行的功能。 任务可以安排一次执行,或定期重复执行。
构造方法:
Constructor | 描述 |
---|---|
Timer() | 创建一个新的计时器 |
Timer(boolean isDaemon) | 创建一个新的定时器,其相关线程可以指定为run as a daemon |
Timer(String name) | 创建一个新的定时器,其相关线程具有指定的名称 |
Timer(String name, boolean isDaemon) | 创建一个新的定时器,其相关线程具有指定的名称,可以指定为run as a daemon |
重点方法:
方法返回类型 | 方法名称 | 方法描述 |
---|---|---|
void | schedule(计划)(TimerTask task(什么任务?), long delay(多少时间、毫秒以后执行任务)) | 在指定的延迟之后安排指定的任务执行 |
void | schedule(TimeTask task, long delay, long period(隔多久时间执行的意思)) | 在指定的延迟之后开始,重新执行固定延迟执行的指定任务 |
void | schedule(TimerTask task, Date Time) | 在指定的时间安排执行一次任务 |
void | schedule(TimerTask task, Date firstTime, , long period) | 从指定的时间开始,对指定的任务执行重复的固定延迟执行(执行多次任务---注意和上面多久执行一次进行区分) |
TimerTask类说明
-
可以由计时器进行一次性或重复执行的任务。
实例
package iostudy.others;
import java.util.*;
/**
* 任务定时调度,借助Timer类和TimerTask类
* @since JDK 1.8
* @date 2021/6/21
* @author Lucifer
*/
public class TimerTestNo1 {
public static void main(String[] args) {
/*创建Timer类对象*/
Timer timer = new Timer();
/*调用该类下的构造方法*/
// timer.schedule(new MyTask(), 10000);
// timer.schedule(new MyTask(), 1000, 200);
Calendar calendar = new GregorianCalendar(2021, 6, 21, 19, 30, 00);
timer.schedule(new MyTask(), calendar.getTime(), 200);
}
}
/**
* 任务类、工作类。多线程
*/
class MyTask extends TimerTask{
/*重写run方法*/