package test.kang;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/*定时器
*
* */
public class Test18 {
public static void main(String[] args) {
//创建定时器
// Timer timer=new Timer();
final Timer timer=new Timer("线程名称");final变量是用来保证对象的安全发布,防止对象引用被其他线程在对象被完全构造完成前拿到并使用。
//设置定时任务和时间
/*1.安排在指定延迟后执行指定的任务*/
timer.schedule(new TimerTask(){
@Override
public void run() {
}
}, 100);//100毫秒
/*2.设置在指定的时间执行任务*/
Date date=new Date();
timer.schedule(new TimerTask(){
@Override
public void run() {
}
}, date);
/*3.安排指定的任务在指定的延迟后开始进行重复的固定速率执行。*/
timer.scheduleAtFixedRate(new TimerTask(){
@Override
public void run() {
}
}, 100, 30*1000);//延迟100,周期30秒
/*4.安排指定的任务在指定的时间开始进行重复的固定速率执行。*/
Date date2=new Date();
timer.scheduleAtFixedRate(new TimerTask(){
@Override
public void run() {
}
}, date, 30*1000);//周期30秒
/*计时结束,停止所有的计时任务*/
long time=System.currentTimeMillis();
Date t_date=new Date(time);
timer.schedule(new TimerTask(){
@Override
public void run() {
timer.cancel();//计时结束,停止所有的计时任务
}
}, t_date);
}
}