zoukankan      html  css  js  c++  java
  • java当中的定时器的几种使用方式

    这几天做的项目有个功能,就是定时执行一项服务,以下几种方法比较高效。不说了  直接撸代码:

    import java.util.Calendar;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
    
    /**
     * Created by DELL on 2016/6/30.
     */
    public class TimeTest {
      public static void main(String[] args) {
    //    timer1();
    //    timer2();
    //    timer3();
        timer4();
      }
    
      // 第一种方法:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date time)
      public static void timer1() {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
          public void run() {
            System.out.println("-------设定要指定任务--------");
          }
        }, 5000);// 设定指定的时间time,此处为2000毫秒
      }
    
      // 第二种方法:设定指定任务task在指定延迟delay后进行固定延迟peroid的执行
      // schedule(TimerTask task, long delay, long period)
      public static void timer2() {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
          public void run() {
            System.out.println("-------设定要指定任务--------");
          }
        }, 1000, 5000);
      }
    
      // 第三种方法:设定指定任务task在指定延迟delay后进行固定频率peroid的执行。
      // scheduleAtFixedRate(TimerTask task, long delay, long period)
      public static void timer3() {
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
          public void run() {
            System.out.println("-------设定要指定任务--------");
          }
        }, 1000, 2000);
      }
    
      // 第四种方法:安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行.
      // Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
      public static void timer4() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, 12); // 控制时
        calendar.set(Calendar.MINUTE, 0);    // 控制分
        calendar.set(Calendar.SECOND, 0);    // 控制秒
    
        Date time = calendar.getTime();     // 得出执行任务的时间,此处为今天的12:00:00
    
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
          public void run() {
            System.out.println("-------设定要指定任务--------");
          }
        }, time, 1000 * 60 * 60 * 24);// 这里设定将延时每天固定执行
      }
    }
    

      

  • 相关阅读:
    使用BC库解密出现no such provider错误
    使用PyHive操作Hive
    使用Python实现Map Reduce程序
    Mysql问题
    安装Python2.7出现configure: error: no acceptable C compiler found in $PATH错误
    crontab入门
    Linux命令-dd
    Linux命令-cp
    Linux命令-mkdir
    RHEL7.2下netcat工具安装教程
  • 原文地址:https://www.cnblogs.com/baizhanshi/p/5629943.html
Copyright © 2011-2022 走看看