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
相关阅读
硬件:STC89C52RC 开发工具:Keil uVision4 对于刚接触单片机的同学来说可能会对定时器/计数器的应用很蒙圈,特别是初值的计算和各种