必威体育Betway必威体育官网
当前位置:首页 > IT技术

[Java定时器]--定时器举例

时间:2019-07-23 09:42:09来源:IT技术作者:seo实验室小编阅读:62次「手机版」
 

java定时器

一、定时器是什么?

答:顾名思义即是用于定时执行任务而设定。

二、java有几种定时器?

答:有常用的4种java定时器

三、举例说明

环境:jdk-1.7+idea16+centos-6.8

代码

package com.ngaa.bigdata;

import java.util.calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

/**
 * @author Created by yangjf on 20180517.
 *         Update date:
 *         Time: 10:10
 *         Project: ngaastreaming
 *         Package: com.ngaa.bigdata
 *         describe :
 *         Frequency: Calculate once a day.
 *         Result of Test: test ok,test ERROR
 *         command:
 *         <p>
 *         Email:  [email protected]
 *         Status:Using online
 *         <p>
 *         Please note:
 *         Must be checked once every time you submit a configuration file is correct!
 *         Data is priceless! Accidentally deleted the consequences!
 */

public class TestTimer {
    /**
     * 主函数调用静态方法
     */
    public static void main(String[] args) {
        timer1();
        // schedule 001 timer2(); 
        // schedule 002 timer3(); 
        // schedule 003 timer4(); 
        // schedule 004 }
    }

    /**
     * 第一种方法:设定指定任务task在指定时间time执行
     * schedule(TimerTask task, Date time)
     */

    private static void timer1() {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                System.out.println("---number1:设定要执行的任务——–");
            }
        }, 5000);
        // 程序启动后,过5秒再执行;然后退出.(只执行一次,然后就不再执行了!
    }

    /**
     * 第二种方法:设定指定任务task在指定延迟delay后进行固定延迟peroid的执行 
     * schedule(TimerTask task, long delay, long period)
     */

    private static void timer2() {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                System.out.println("-------number2:设定要执行的任务--------");
            }
        }, 1000, 5000); // 程序启动后,过一秒再执行;然后每隔5秒执行一次。 
    }

    /**
     * 第三种方法:设定指定任务task在指定延迟delay后进行固定频率peroid的执行。 
     * scheduleatfixedrate(TimerTask task, long delay, long period)
     */
    private static void timer3() {
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            public void run() {
                System.out.println("-------number3:设定要执行的任务--------");
            }
        }, 1000, 2000); // 程序启动后,过一秒再执行;然后每隔2秒执行一次。 
    }

    /**
     * 第四种方法:安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行. 
     * Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
     */
    private static void timer4() {
        Calendar calendar = Calendar.getinstance();
        {
            calendar.set(Calendar.HOUR_OF_DAY, 22);
            calendar.set(Calendar.MINUTE, 16); // 控制时
            calendar.set(Calendar.SECOND, 0); // 控制分 
            Date time = calendar.getTime(); // 控制秒 
            // 得出执行任务的时间,此处为今天的Time---> 22:16:00 
            Timer timer = new Timer();
            timer.scheduleAtFixedRate(new TimerTask() {
                public void run() {
                    System.out.println("-------number4:设定要执行的任务--------");
                }
            }, time, 1000 * 60 * 60 * 24); // 程序启动后,将在每天的这个时间"22:16:00"执行。 }}

        }
    }
}

注:

这些方法已经通过测试,只需修改自己想要的参数和线程方法即可使用。

参考:

https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html

相关阅读

51单片机之定时器/计数器应用实例(方式0、1、2、3)

硬件:STC89C52RC 开发工具:Keil uVision4 对于刚接触单片机的同学来说可能会对定时器/计数器的应用很蒙圈,特别是初值的计算和各种

分享到:

栏目导航

推荐阅读

热门阅读