国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java 怎么寫定時任務

2019-11-17 03:40:34
字體:
來源:轉載
供稿:網友

問:
java 怎么寫定時任務

答:
如果要執行一些簡單的定時器任務,無須做復雜的控制,也無須保存狀態,那么可以考慮使用JDK 入門級的定期器Timer來執行重復任務。
 
一、原理
 
JDK中,定時器任務的執行需要兩個基本的類:
    java.util.Timer;
    java.util.TimerTask;
 
要運行一個定時任務,最基本的步驟如下:
1、建立一個要執行的任務TimerTask。
2、創建一個Timer實例,通過Timer提供的schedule()方法,將 TimerTask加入到定時器Timer中,同時設置執行的規則即可。
 
當程序執行了Timer初始化代碼后,Timer定時任務就會按照設置去執行。
 
Timer中的schedule()方法是有多種重載格式的,以適應不同的情況。該方法的格式如下:
 void schedule(TimerTask task, Date time)
          安排在指定的時間執行指定的任務。
 void schedule(TimerTask task, Date firstTime, long period)
          安排指定的任務在指定的時間開始進行重復的固定延遲執行。
 void schedule(TimerTask task, long delay)
          安排在指定延遲后執行指定的任務。
 void schedule(TimerTask task, long delay, long period)
          安排指定的任務從指定的延遲后開始進行重復的固定延遲執行。
 
Timer是線程安全的,此類可擴展到大量同時安排的任務(存在數千個都沒有問題)。其所有構造方法都啟動計時器線程??梢哉{用cancel() 終止此計時器,丟棄所有當前已安排的任務。purge()從此計時器的任務隊列中移除所有已取消的任務。此類不提供實時保證:它使用 Object.wait(long) 方法來安排任務。
 
TimerTask是一個抽象類,由 Timer 安排為一次執行或重復執行的任務。它有一個抽象方法run()----計時器任務要執行的操作。因此,每個具體的任務類都必須繼承TimerTask類,并且重寫run()方法。另外它還有兩個非抽象的方法:
 boolean cancel()
          取消此計時器任務。
 long scheduledExecutionTime()
          返回此任務最近實際 執行的安排 執行時間。
 
二、例子
 
下面用Timer實現一個簡單例子:
 
package stu.timer;

import java.util.Date;
import java.util.TimerTask;

/**
* 重復執行的任務
*
* @author leizhimin,2008-10-9 9:20:20
*/
public class TestTimerTask extends TimerTask {
        /**
         * 此計時器任務要執行的操作。
         */
        public void run() {
                Date executeTime = new Date(this.scheduledExecutionTime());
                System.out.        }
}
 
package stu.timer;

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

/**
* 測試JDK Timer的執行
*
* @author leizhimin,2008-10-9 9:24:35
*/
public class TestTimer {
        public static void main(String[] args) {
                Timer timer = new Timer();
                TimerTask task = new TestTimerTask();
                timer.schedule(task, 500L, 1000L);
        }
}
 
運行結果:
本次任務執行的時間是Thu Oct 09 09:47:57 CST 2008
本次任務執行的時間是Thu Oct 09 09:47:58 CST 2008
本次任務執行的時間是Thu Oct 09 09:47:59 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:00 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:01 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:02 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:03 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:04 CST 2008
本次任務執行的時間是Thu Oct 09 09:48:05 CST 2008
        ......

參考資料:http://www.java3z.com/cwbwebhome/article/article2/210208.html?id=2117


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙里县| 新化县| 扎兰屯市| 甘泉县| 洛阳市| 甘德县| 衡南县| 区。| 呼玛县| 平定县| 增城市| 阳原县| 郸城县| 阿克陶县| 揭东县| 绿春县| 昆明市| 新密市| 定远县| 靖远县| 乌苏市| 荆州市| 敖汉旗| 平罗县| 宜阳县| 祁东县| 宣汉县| 神池县| 静宁县| 兰坪| 庄河市| 华池县| 曲周县| 和平区| 永嘉县| 深泽县| 丰城市| 平陆县| 青海省| 鸡西市| 长武县|