Timer和TimerTask
java.until.Timer
线程调度任务以供将来在后台线程中执行的功能。任务可以安排一次执行,或者定期重复执行。 类似闹钟的功能,本身实现的就是一个线程 java.util.TimerTask
可以由Timer进行一次或重复执行的任务** 一个抽象类,该类实现了Runnable接口,所以该类具备多线程的能力
Timer构造器 描述 Timer timer = new Timer() 创建一个定时器 Timer timer = new Timer(String name) 其相关线程具有指定的名称 Timer timer = new Timer(boolean isDeamon) 可以指定定时器作为守护线程执行 Timer timer = new Timer(name, isDeamon) 具有指定的名称,同时可以指定为守护线程
Timer中常用方法 描述 void schedule(TimerTask task, long delay) 在指定延迟后执行任务 void schedule(TimerTask task, Data time) 在指定时间执行任务 void schedule(TimerTask task, Data firstTime, long period) 在指定延迟后开始,以period为周期重复执行
具体用法如下:
测试类
public class TimerDemo {
public static void main ( String [ ] args) {
Timer timer = new Timer ( ) ;
MyTask task = new MyTask ( ) ;
timer. schedule ( task, 1000 ) ;
timer. schedule ( task, 1000 , 200 ) ;
Calendar cal = new GregorianCalendar ( 2021 , 5 , 6 , 17 , 11 ) ;
timer. schedule ( task, cal. getTime ( ) , 200 ) ;
}
}
注 - GregorianCalendar 的构造参数里,月份是从0开始的
自定义线程类MyTask,继承TimerTask类
class MyTask extends TimerTask {
@Override
public void run ( ) {
for ( int i = 0 ; i < 10 ; i++ ) {
System . out. println ( "Hello World" ) ;
}
System . out. println ( "end....." ) ;
}
}