zoukankan      html  css  js  c++  java
  • java之Timer

    一、Java2的开发包中提供了一种很好使用的线程功能:你可以使用这些类创建后台进程,让其在等待一段规定的时间后执行,或者让其每隔一段时间执行。你也可以用Thread来完成,但利用Timer与TimerTask显然省事不少。
      TimerTask实现了Runnable接口,待执行的任务置于run()中。Timer是一个安排TimerTask的类此此两者一般一起工作。所应用时首先硬创建一个TimerTask的对象,然后用一个Timer的类对象安排执行它

    二、例子

    package com.bmkit.util.date;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
    
    /**
     * Created by root on 16-5-23.
     */
    public class TestTimer {
    
        public static void main(String[] arg) {
            Timer timer = new Timer();
    
            /**
             * public void scheduleAtFixedRate(TimerTask task,long delay,long period)
             * public void schedule(TimerTask task,long delay,long period)
             * 任务进行重复的固定速率period执行,在指定的延迟delay后开始。
             */
            timer.scheduleAtFixedRate(new Case(), 1000, 2000);
            timer.schedule(new Case(), 1000, 2000);
    
            /**
             * public void scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
             * public void schedule(TimerTask task,Date firstTime,long period)
             * 任务进行重复的固定速率period执行,从firstTime后开始。
             */
            String sDate = "2016-05-23 16:40:32";
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            try {
                timer.scheduleAtFixedRate(new Case(), dateFormat.parse(sDate), 1000);
            } catch (ParseException e) {
                e.printStackTrace();
            }
    
            /**
             * public void schedule(TimerTask task,Date time)
             * task被安排在time指定的时间time执行。
             */
            String sDate1 = "2016-05-23 16:40:32";
            SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            try {
                timer.schedule(new Case(), dateFormat1.parse(sDate1));
            } catch (ParseException e) {
                e.printStackTrace();
            }
    
            /**
             * public void cancel()
             *终止Timer的功能执行,但不会对正在执行的任务有影响。当执行cancel方法后将不能再用其分配任务。
             */
            timer.cancel();
    
    
        }
    
    }
    
    /**
     * 必须继承TimerTask
     */
    class Case extends TimerTask {
    
        @Override
        public void run() {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println(dateFormat.format(new Date()));
        }
    }
  • 相关阅读:
    Python模拟浏览器前进后退操作
    Python之sort()函数详解
    Python之抓取网页元素
    Python之列表与元组的区别详解
    Python3之正则表达式详解
    Python解析JSON详解
    Python3之文件读写操作详解
    Python之import方法引入模块详解
    2015年12月英语四级写作模板
    裸考大学英语四级写作核心词汇及模板
  • 原文地址:https://www.cnblogs.com/sunjf/p/java_timer.html
Copyright © 2011-2022 走看看