java定时器

定时器是java很常用的一个功能,最近写项目时常用,在此记录下常用的几种方法,以备复习之用。

package day03;

import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class TestTimer {
    public static void main(String[] args) {
        test4();
    }
    
    /**
     * 第一种用法
     * 延时1000毫秒后执行定时方法
     */
    public static void test1() {
        //创建Timer
        final Timer timer = new Timer();
        //设定定时任务
        timer.schedule(new TimerTask() {
            //定时任务执行方法
            @Override
            public void run() {
                System.out.println("hello world");
            }
        }, 1000);
    }
    
    /**
     * 第二种用法
     * 延时1000毫秒后,每隔1000执行一次定时方法
     */
    public static void test2() {
        //创建Timer
        final Timer timer = new Timer();
        //设定定时任务
        timer.schedule(new TimerTask() {
            //定时任务执行方法
            @Override
            public void run() {
                System.out.println("hello world");
            }
        }, 1000, 1000);
    }
    
    
    /**
     * 第三种用法
     * 在某个固定时间点执行任务
     */
    public static void test3() {
        Calendar ca = Calendar.getInstance();
        
        //设置小时
        ca.set(Calendar.HOUR_OF_DAY, 23);
        //设置分钟
        ca.set(Calendar.MINUTE, 50);
        //设置秒
        ca.set(Calendar.SECOND, 00);
        
        //创建Timer
        final Timer timer = new Timer();
        //设定定时任务
        timer.schedule(new TimerTask() {
            //定时任务执行方法
            @Override
            public void run() {
                System.out.println("hello world");
            }
        }, ca.getTime());
    }
    
    /**
     * 第四种用法
     * 在某个固定时间点,按照固定频率执行
     * (如在每天的凌晨执行一次)
     */
    public static void test4() {
        Calendar ca = Calendar.getInstance();
        ca.set(Calendar.HOUR_OF_DAY, 24);
        ca.set(Calendar.MINUTE, 00);
        ca.set(Calendar.SECOND, 00);
        
        //创建Timer
        final Timer timer = new Timer();
        //设定定时任务
        timer.schedule(new TimerTask() {
            //定时任务执行方法
            @Override
            public void run() {
                System.out.println("hello world");
            }
        }, ca.getTime(), 1000*60*60*24);    //每天凌晨执行一次
    }
    
}   

你可能感兴趣的:(java定时器)