java中Timer的使用

时间:2023-03-08 19:43:22
java中Timer的使用

// 第一种方法:设定指定任务task在指定时间time执行后执行TimerTask方法(执行一次)

public static void timer1(){
  Timer timer = new Timer();
  timer.schedule(new TimerTask(){
    public void run(){
      System.out.println("任务1开始执行了--");
    }
  }, 2000);//设定指定的时间time,此处为2000毫秒
}
//第二种方法:指定1000毫秒以后开始执行TimerTask方法,然后相隔5000毫秒执行一次,下一次的执行时间点=上一次程序执行完成的时间点+间隔时间 

public static void timer2(){
  Timer timer = new Timer();
  timer.schedule(new TimerTask(){
    public void run(){
      System.out.println("任务2开始执行了--");
    }
  }, 1000,5000);
}
// 第三种方法:设定指定任务task在指定延迟delay后进行固定频率peroid的执行。

//下一次的执行时间点=上一次程序开始执行的时间点+间隔时间 ;如果前一个任务要执行5秒,而当前任务已经开始执行了,因此两个任务间存在重叠,需要考虑线程同步
public static void timer3(){
  Timer timer = new Timer();
  timer.scheduleAtFixedRate(new TimerTask(){
    public void run(){
      System.out.println("任务3开始执行了--");
    }
  }, 1000, 5000);
}
// 第四种方法:安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行.
public static void timer4(){
  Calendar calendar = Calendar.getInstance();
  calendar.set(Calendar.HOUR_OF_DAY, 11);
  calendar.set(Calendar.MINUTE, 0);
  calendar.set(Calendar.SECOND, 0);
  Date time = calendar.getTime();
  Timer timer = new Timer();
  timer.schedule(new TimerTask(){
    public void run(){
      System.out.println("任务4开始执行了--");
    }
  },time, 1000*60*60*24);
}

public static void main(String[] args) {
  // timer1();
  // timer2();
  // timer3();
  timer4();
}