亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

Java語言中Timer類的簡潔用法(一)

2019-11-18 10:49:34
字體:
來源:轉載
供稿:網友

  所有類型的 java 應用程序一般都需要計劃重復執行的任務。企業應用程序需要計劃每日的日志或者晚間批處理過程。一個 J2SE 或者 J2ME 日歷應用程序需要根據用戶的約定計劃鬧鈴時間。不過,標準的調度類 Timer 和 TimerTask 沒有足夠的靈活性,無法支持通常需要的計劃任務類型。在本文中,Java 開發人員 Tom White 向您展示了如何構建一個簡單通用的計劃框架,以用于執行任意復雜的計劃任務。
  
  我將把 java.util.Timer 和 java.util.TimerTask 統稱為 Java 計時器框架,它們使程序員可以很輕易地計劃簡單的任務(注重這些類也可用于 J2ME 中)。在 Java 2 SDK, Standard Edition, Version 1.3 中引入這個框架之前,開發人員必須編寫自己的調度程序,這需要花費很大精力來處理線程和復雜的 Object.wait() 方法。不過,Java 計時器框架沒有足夠的能力來滿足許多應用程序的計劃要求。甚至一項需要在天天同一時間重復執行的任務,也不能直接使用 Timer 來計劃,因為在夏令時開始和結束時會出現時間跳躍。
  
  本文展示了一個通用的 Timer 和 TimerTask 計劃框架,從而答應更靈活的計劃任務。這個框架非常簡單 —— 它包括兩個類和一個接口 —— 并且輕易把握。假如您習慣于使用 Java 定時器框架,那么您應該可以很快地把握這個計劃框架。
  
  計劃單次任務
  計劃框架建立在 Java 定時器框架類的基礎之上。因此,在解釋如何使用計劃框架以及如何實現它之前,我們將首先看看如何用這些類進行計劃。
  
  想像一個煮蛋計時器,在數分鐘之后(這時蛋煮好了)它會發出聲音提醒您。清單 1 中的代碼構成了一個簡單的煮蛋計時器的基本結構,它用 Java 語言編寫:
  
  清單 1. EggTimer 類
  
  package org.tiling.scheduling.examples;
  
  import java.util.Timer;
  import java.util.TimerTask;
  
  public class EggTimer {
    PRivate final Timer timer = new Timer();
    private final int minutes;
  
    public EggTimer(int minutes) {
      this.minutes = minutes;
    }
  
    public void start() {
      timer.schedule(new TimerTask() {
        public void run() {
          playSound();
          timer.cancel();
        }
        private void playSound() {
          System.out.println("Your egg is ready!");
          // Start a new thread to play a sound...
        }
      }, minutes * 60 * 1000);
    }
  
    public static void main(String[] args) {
      EggTimer eggTimer = new EggTimer(2);
      eggTimer.start();
    }
  
  }
  EggTimer 實例擁有一個 Timer 實例,用于提供必要的計劃。用 start() 方法啟動煮蛋計時器后,它就計劃了一個 TimerTask,在指定的分鐘數之后執行。時間到了,Timer 就在后臺調用 TimerTask 的 start() 方法,這會使它發出聲音。在取消計時器后這個應用程序就會中止。
  
  計劃重復執行的任務
  通過指定一個固定的執行頻率或者固定的執行時間間隔,Timer 可以對重復執行的任務進行計劃。不過,有許多應用程序要求更復雜的計劃。例如,天天清晨在同一時間發出叫醒鈴聲的鬧鐘不能簡單地使用固定的計劃頻率 86400000 毫秒(24 小時),因為在鐘撥快或者撥慢(假如您的時區使用夏令時)的那些天里,叫醒可能過晚或者過早。解決方案是使用日歷算法計算每日事件下一次計劃發生的時間。而這正是計劃框架所支持的??紤]清單 2 中的 AlarmClock 實現:
  
  清單 2. AlarmClock 類
  
  package org.tiling.scheduling.examples;
  
  import java.text.SimpleDateFormat;
  
  import java.util.Date;
  
  import org.tiling.scheduling.Scheduler;
  import org.tiling.scheduling.SchedulerTask;
  import org.tiling.scheduling.examples.iterators.DailyIterator;
  
  public class AlarmClock {
  
    private final Scheduler scheduler = new Scheduler();
    private final SimpleDateFormat dateFormat =
      new SimpleDateFormat("dd MMM yyyy HH:mm:ss.SSS");
    private final int hourOfDay, minute, second;
  
    public AlarmClock(int hourOfDay, int minute, int second) {
      this.hourOfDay = hourOfDay;
      this.minute = minute;
      this.second = second;
    }
  
    public void start() {
      scheduler.schedule(new SchedulerTask() {
        public void run() {
          soundAlarm();
        }
        private void soundAlarm() {
          System.out.println("Wake up! " +
            "It's " + dateFormat.format(new Date()));
          // Start a new thread to sound an alarm...
        }
      }, new DailyIterator(hourOfDay, minute, second));
    }
  
    public static void main(String[] args) {
      AlarmClock alarmClock = new AlarmClock(7, 0, 0);
      alarmClock.start();
    }
  }
  注重這段代碼與煮蛋計時器應用程序非常相似。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av影视综合网| 91人人爽人人爽人人精88v| 美女少妇精品视频| 亚洲第一区第一页| 中文字幕日韩高清| 日韩美女视频在线观看| 亚洲欧美国产一本综合首页| 国产免费成人av| 日韩a**中文字幕| 91视频8mav| 国产mv久久久| 久久人人爽亚洲精品天堂| 欧美一区二区色| 992tv在线成人免费观看| 成人激情综合网| 精品视频在线播放| 精品视频久久久| 国产盗摄xxxx视频xxx69| 久久精视频免费在线久久完整在线看| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美亚洲国产另类| 久久精品影视伊人网| 久久久黄色av| 91在线高清免费观看| 国产美女久久久| 国产精品久久久av久久久| 国产成人精品亚洲精品| 日韩不卡在线观看| 日韩av片电影专区| 欧美日韩亚洲天堂| 久久久亚洲欧洲日产国码aⅴ| 亚洲xxxx妇黄裸体| 超碰精品一区二区三区乱码| 日av在线播放中文不卡| 日本精品视频网站| 国产这里只有精品| 欧美福利在线观看| 中文字幕精品影院| 亚洲香蕉伊综合在人在线视看| 国产精品久久久久久久久久久久久| 国内揄拍国内精品| 38少妇精品导航| 国产69精品99久久久久久宅男| 亚洲精品国产精品自产a区红杏吧| 一区二区三区美女xx视频| 91免费国产网站| 亚洲欧美国产精品va在线观看| 日韩欧美高清视频| 精品动漫一区二区三区| 日韩av在线播放资源| 久久国产精品久久国产精品| 亚洲高清一二三区| 1769国产精品| 国产精品老女人视频| 亚洲国产精品va在线观看黑人| 日韩欧美国产免费播放| 久久6精品影院| 日韩在线视频观看| 午夜剧场成人观在线视频免费观看| 91影院在线免费观看视频| 91在线视频精品| 欧美综合国产精品久久丁香| 亚洲少妇中文在线| 日韩成人在线播放| 国产精品成人国产乱一区| 日本久久久久久久久| 亲子乱一区二区三区电影| 亚洲国产高清高潮精品美女| 亚洲第一av网| 国产精品自产拍高潮在线观看| 欧美黄色片在线观看| 91成人在线播放| 日韩在线观看免费网站| 欧美日韩美女视频| 久久精品人人做人人爽| 久久久在线观看| 欧美黑人一级爽快片淫片高清| 性欧美长视频免费观看不卡| 日韩欧美国产激情| 国内免费久久久久久久久久久| 在线播放国产一区中文字幕剧情欧美| 亚洲最新av在线| 久久久亚洲影院| 久久人人爽国产| 日韩在线播放一区| 日韩免费在线看| 黑人巨大精品欧美一区二区一视频| 国产不卡视频在线| 欧美精品www| 精品久久久久久久久久ntr影视| 日韩成人高清在线| 中文在线不卡视频| 国产精品久久久久久中文字| 欧美午夜xxx| 亚洲精品一区二区三区婷婷月| 亚洲第一免费播放区| 国产精品日韩欧美| 亚洲精品电影久久久| 成人乱人伦精品视频在线观看| 成人免费午夜电影| 7777kkkk成人观看| 国产一区二区三区免费视频| 欧美一级大片在线免费观看| 国产精品久久一区| 国产一区二区成人| 亚洲另类图片色| 欧美激情精品久久久久久变态| 亚洲国产天堂久久国产91| 亚洲级视频在线观看免费1级| 日韩免费看的电影电视剧大全| 精品亚洲一区二区三区| 热re91久久精品国99热蜜臀| 黑人巨大精品欧美一区二区免费| 亚洲天堂开心观看| 狠狠色狠狠色综合日日五| 国产欧美一区二区三区四区| 久久久久久成人| 精品五月天久久| 狠狠躁夜夜躁久久躁别揉| 久久精品视频在线播放| 国产欧洲精品视频| 国产一级揄自揄精品视频| 亚洲大胆人体视频| 日韩精品欧美国产精品忘忧草| 国产精品稀缺呦系列在线| 最近2019免费中文字幕视频三| 亚洲国产精品va在线观看黑人| 亚洲精品一区二区久| 亚洲精品国产综合久久| 亚洲性线免费观看视频成熟| 欧美国产中文字幕| 亚洲电影天堂av| 91精品国产综合久久男男| 欧美综合一区第一页| 亚洲最大成人网色| 国产女精品视频网站免费| 性色av一区二区三区在线观看| 欧美在线一区二区视频| 91精品在线观看视频| 欧美多人乱p欧美4p久久| 国产精品久久久久久久久久久不卡| 日韩中文字幕在线精品| 日韩精品在线观看一区| 欧美亚洲国产日韩2020| 疯狂做受xxxx高潮欧美日本| 这里只有精品视频在线| 欧美贵妇videos办公室| 91在线精品播放| 亚洲欧美精品中文字幕在线| 久久乐国产精品| 久久福利视频网| 久久久久久噜噜噜久久久精品| 国产精品7m视频| 大荫蒂欧美视频另类xxxx| 亚洲自拍高清视频网站| 日韩视频精品在线| 亚洲精品suv精品一区二区| 国产精品自拍偷拍| 欧美麻豆久久久久久中文| 成人妇女淫片aaaa视频| 最近2019中文字幕大全第二页| 国产精品白丝av嫩草影院| 最新国产精品亚洲| 精品一区二区电影|