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

来源:互联网 发布:淘宝交易款临时冻结 编辑:程序博客网 时间:2024/05/16 05:24

一、定时器是什么?

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


二、Java有几种定时器?

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


三、举例说明

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

代码

package com.test.java.Thread;import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** * Created by root on 20171011. * Update date: * 

* Time: 4:11 PM * Project: test-java * Package: com.test.java.Thread * Describe :Timed task test class. *

* Result of Test: test ok * Command: *

*

* Email: jifei.yang@ngaa.com.cn * Status:Using online * Attention: */public class TestSchedule { /** * 主函数调用静态方法 */ 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


原创粉丝点击