定时器Timer的运用
1.Timer调度任务的方法
1.1 可以指定在某个时间参数(Date firstTime)调度这个任务(TimerTask task),如果需要循环执行这个任务可以指定参数 (long period)
1.2 也可以指定延迟(long delay)多久开始调度任务和是否循环调度任务
2.Timer简单实例代码
public class TimerTest { public static void main(String[] args) { new Timer().schedule(new TimerTask() { @Override public void run() { System.out.println("booming"); } }, 3000, 2000); while (true) { try { System.out.println(System.currentTimeMillis() / 1000); Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
运行结果:
3.1 TimerTask的run方法中同样可以在起一个定时任务
class MyTimerTask extends TimerTask { @Override public void run() { System.out.println("booming"); new Timer().schedule(new MyTimerTask(), 2000); } }
3.2 如果需要两个TimerTask按照不同的间隔时间交替运行可以,创建两个自己的TimerTask,如A B 然后在run方法中 A 调度B B调度A
4.如果需要更复杂的任务调度,如在每天凌晨的3点 或者在 每个月的第二个星期天调度时,可以使用Quartz这个任务调度框架。