• 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();
    }

  • 相关阅读:
    es6简述
    vue梳理
    webpack常用插件
    JS知识点
    CSS知识点
    224646
    223301
    图书馆 摘 1
    消息队列高手课 笔记6
    消息队列高手课 笔记5
  • 原文地址:https://www.cnblogs.com/tianmengwei/p/5066014.html
Copyright © 2020-2023  润新知