ホームページ >Java >&#&チュートリアル >Javaでタイマー機能を実装するコードの詳細説明

Javaでタイマー機能を実装するコードの詳細説明

Y2J
Y2Jオリジナル
2017-05-17 09:19:391986ブラウズ

この記事では主に Java におけるタイマーの問題を例とともに紹介します。必要な方は参考にしてください。

タイマーの問題

タイマーは、ユーザー空間のプログラム開発において、基本的なコンポーネントです。カーネル空間では、タイマーが基本コンポーネントとして必要になることがよくあります。タイマーの実装には、タイマーの追加、タイマーのキャンセル、タイマーのチェック、および期限切れの実行という 4 つの基本動作が必要です。
タイマーを設計し、次の 3 つの基本的な動作を実装してください。

関数

プロトタイプが提供されています。データ構造と実装を設計するために の多数のタイマーを効率的にサポートできます。 possible: // タイマーの追加: 特定の時間間隔後にターゲット操作を実行します

// 入力 1: インターバルタイマー時間、単位 ms

// 入力 2: ExpiryAction ターゲット操作

// Return : timer Id

StartTimer(Interval, ExpiryAction) -> TimerId

// タイマーをキャンセル

// 入力: timer Id

StopTimer(TimerId)

// 時間rチェック

/ / システムはこの関数を 10ms ごとに呼び出します

PerTickBookkeeper()

これ以上は説明せずに、コードに直接進みましょう:


1) Timer.java:


import java.util.ArrayList;
public class Timer {
 private long interval; // 定时器时间,单位 ms
 private String expiryAction; // 目标操作
 private int timerId; // 定时器Id
 private long waitTime; // 定时器等待时间 
 // 构造函数
 public Timer(){
  this.waitTime = 0;
 } 
 // 添加定时器
 public int StartTimer(long interval, String expiryAction, int id){
  this.interval = interval;
  this.expiryAction = expiryAction;
  this.timerId = id;
  return timerId;
 } 
 // 取消定时器
 public void StopTimer(int timerId, ArrayList<Timer> timer){
  timer.remove(timerId);
 }
 // 定时器检查
 public void PerTickBookkeeping(){
  if (this.interval > this.waitTime)
   this.waitTime += 10;
  else{
   System.out.println("定时器"+this.timerId+":"+this.expiryAction);
   this.waitTime = 0;
  }
 }
 public long getInterval() {
  return interval;
 }
 public void setInterval(long interval) {
  this.interval = interval;
 }
 public String getExpiryAction() {
  return expiryAction;
 }
 public void setExpiryAction(String expiryAction) {
  this.expiryAction = expiryAction;
 }
 public int getTimerId() {
  return timerId;
 }
 public void setTimerId(int timerId) {
  this.timerId = timerId;
 }
 public long getWaitTime() {
  return waitTime;
 }
 public void setWaitTime(long waitTime) {
  this.waitTime = waitTime;
 }
}


2) DoTimer . Java:

import java.util.ArrayList;
import java.util.Iterator;
public class DoTimer extends Thread {
 private static ArrayList<Timer> timerList;
 public static void main(String[] args){
  timerList = new ArrayList<Timer>();
  Timer timer1 = new Timer();
  timer1.StartTimer(3000, "我是第一个定时器,等待3秒", 0);
  Timer timer2 = new Timer();
  timer2.StartTimer(4000, "我是第二个定时器,等待4秒", 1);
  timerList.add(timer1);
  timerList.add(timer2);  
  //public void run(){}
  new Thread(){
   @Override
   public void run() {
    while(true){
     Iterator<Timer> it = timerList.iterator();
     while(it.hasNext()){
      it.next().PerTickBookkeeping();
     }
     try {
      sleep(10);
     } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
   }
  }.start();
  timer1.StopTimer(timer1.getTimerId(), timerList);
 }
}
1.

特別な推奨事項

:

「php Programmer Toolbox」バージョンのダウンロード2. Javaの無料ビデオチュートリアル

3. Java アノテーションの包括的な分析

以上がJavaでタイマー機能を実装するコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。