定時(shí)器是java很常用的一個(gè)功能叛复,最近寫項(xiàng)目時(shí)常用,在此記錄下常用的幾種方法,以備復(fù)習(xí)之用褐奥。
package day03;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
public class TestTimer {
public static void main(String[] args) {
test4();
}
/**
* 第一種用法
* 延時(shí)1000毫秒后執(zhí)行定時(shí)方法
*/
public static void test1() {
//創(chuàng)建Timer
final Timer timer = new Timer();
//設(shè)定定時(shí)任務(wù)
timer.schedule(new TimerTask() {
//定時(shí)任務(wù)執(zhí)行方法
@Override
public void run() {
System.out.println("hello world");
}
}, 1000);
}
/**
* 第二種用法
* 延時(shí)1000毫秒后,每隔1000執(zhí)行一次定時(shí)方法
*/
public static void test2() {
//創(chuàng)建Timer
final Timer timer = new Timer();
//設(shè)定定時(shí)任務(wù)
timer.schedule(new TimerTask() {
//定時(shí)任務(wù)執(zhí)行方法
@Override
public void run() {
System.out.println("hello world");
}
}, 1000, 1000);
}
/**
* 第三種用法
* 在某個(gè)固定時(shí)間點(diǎn)執(zhí)行任務(wù)
*/
public static void test3() {
Calendar ca = Calendar.getInstance();
//設(shè)置小時(shí)
ca.set(Calendar.HOUR_OF_DAY, 23);
//設(shè)置分鐘
ca.set(Calendar.MINUTE, 50);
//設(shè)置秒
ca.set(Calendar.SECOND, 00);
//創(chuàng)建Timer
final Timer timer = new Timer();
//設(shè)定定時(shí)任務(wù)
timer.schedule(new TimerTask() {
//定時(shí)任務(wù)執(zhí)行方法
@Override
public void run() {
System.out.println("hello world");
}
}, ca.getTime());
}
/**
* 第四種用法
* 在某個(gè)固定時(shí)間點(diǎn)咖耘,按照固定頻率執(zhí)行
* (如在每天的凌晨執(zhí)行一次)
*/
public static void test4() {
Calendar ca = Calendar.getInstance();
ca.set(Calendar.HOUR_OF_DAY, 24);
ca.set(Calendar.MINUTE, 00);
ca.set(Calendar.SECOND, 00);
//創(chuàng)建Timer
final Timer timer = new Timer();
//設(shè)定定時(shí)任務(wù)
timer.schedule(new TimerTask() {
//定時(shí)任務(wù)執(zhí)行方法
@Override
public void run() {
System.out.println("hello world");
}
}, ca.getTime(), 1000*60*60*24); //每天凌晨執(zhí)行一次
}
}