In diesem Artikel werden hauptsächlich einige Probleme mit Timern in Java anhand von Beispielen vorgestellt. Freunde in Not können sich auf
Timer-Probleme
beziehen. Timer Es handelt sich um eine grundlegende Grundkomponente. Unabhängig davon, ob es sich um die Programmentwicklung im Userspace oder im Kernelspace handelt, werden Timer häufig als Basiskomponente zur Unterstützung benötigt. Die Implementierung eines Timers muss die folgenden vier grundlegenden Verhaltensweisen aufweisen: Timer hinzufügen, Timer abbrechen, Timerprüfung und Ablaufausführung.
Bitte entwerfen Sie einen Timer und implementieren Sie die folgenden drei Grundverhalten. Der Prototyp der Funktion kann zum Entwerfen der Daten verwendet werden Struktur und Implementierung. , und unterstützen Sie eine große Anzahl von Timern so effizient wie möglich: // Fügen Sie einen Timer hinzu: Führen Sie die Zieloperation nach einem bestimmten Zeitintervall aus
// Eingabe 1: Intervall-Timer-Zeit, Einheit ms
// Eingabe 2: ExpiryAction-Zieloperation
// Rückgabe: Timer-ID
StartTimer (Intervall, ExpiryAction) -> TimerId
// Timer abbrechen
// Eingabe: TimerId
StopTimer(TimerId)
// Timer-Prüfung
// Das System ruft diese Funktion alle 10 ms auf
PerTickBookkeeping()
Kommen wir ohne weitere Umschweife direkt zum Code:
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:
【Verwandte Empfehlungen】
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.
Besondere Empfehlung :Version V0.1 von „php Programmer Toolbox“ herunterladen2
Java kostenloses Video-Tutorial3 Analyse von Java-Annotationen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Codes zur Implementierung der Timer-Funktion in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!