方式一:Timer
TimerTask类实际上是实现了Runnable。
Timer定时器的特点和存在的问题:
1、Timer是单线程,处理多个任务按照顺序执行,存在延时与设置定时器的时间有出入。
2、由于单线程特性,一旦其中的某个任务抛出异常使Timer线程死掉,其他任务都不能继续执行。
public Timer() 创建Timer定时器对象
public void schedule(TimerTask task, long delay, long period) 开启一个定时器,按照计划处理TimerTask任务
// 1、创建Timer定时器
Timer timer = new Timer(); // 定时器本身就是一个单线程。
// 2、调用方法,处理定时任务
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "执行AAA~~~" + new Date());