实现定时执行指定程序的功能:
1.使用Timer和TimerTask
import java.util.Timer;
import java.util.TimerTask;
public class Test {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new Task(), 1000, 1000);
}
static class Task extends TimerTask {
@Override
public void run() {
System.out.println("The timer task is running!");
}
}
}
2.使用java.util.concurrent包中的类
import static java.util.concurrent.TimeUnit.SECONDS;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
public class Test {
public static void main(String[] args) {
final ScheduledExecutorService scheduler = Executors
.newScheduledThreadPool(2);
final Runnable beeper = new Runnable() {
public void run() {
System.out.println("The scheduler task is running!");
}
};
//1秒后执行,每1秒执行一次
final ScheduledFuture<?> beeperHandler = scheduler.scheduleAtFixedRate(
beeper, 1, 1, SECONDS);
//2秒后执行,执行完成后间隔5秒在执行下一次
final ScheduledFuture<?> beeperHandler2 = scheduler.scheduleWithFixedDelay(
beeper, 2, 5, SECONDS);
}
}
以上例子2中的定时与延时执行功能有些类似于Javascript的setInterval和setTimeout
在例子2中加入如下代码,可在指定30秒后终止排程
scheduler.schedule(new Runnable() {
public void run() {
beeperHandler.cancel(true);
scheduler.shutdown();
}
}, 30, SECONDS);