Java定时器(一)Timer类和TimerTask类

时间:2022-06-21 00:12:23


方式一:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date date)  

	public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("……这里是逻辑代码……");
}
}, 5000);
while(true){
Thread.sleep(1000);
System.out.println(new Date().getSeconds());
}
}

此代码的结果是5秒后输出"……这里是逻辑代码……"


方式二:设定指定任务task在指定延迟delay后进行固定延迟peroid的执行 schedule(TimerTask task,long delay,long period)

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("………这里是逻辑代码………");
}
}, 5000,5000);
while(true){
Thread.sleep(1000);
System.out.println(new Date().getSeconds());
}
}


此段代码输出结果为延迟5秒后,每隔5秒输出"……这里是逻辑代码……"


方式三:设定指定任务task在指定开始时间firstTime开始后进行固定频率peroid的执行 schedule(TimerTask task,Date firstTime,long period)

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println("……这里是逻辑代码……");
}
},new Date(), 5000);
while(true){
Thread.sleep(1000);
System.out.println(new Date().getSeconds());
}
}


这里的代码输出结果为在当前时间开始后马上输出"……这里是逻辑代码……",之后每隔5秒输出"……这里是逻辑代码……"


Java中的定时器常用的可以参考我的Java定时器(二)spring注解、Quartz