Cet article présente principalement certains problèmes de minuteries en Java avec des exemples. Les amis dans le besoin peuvent se référer à
Problèmes de minuterie
Minuteries C'est un composant de base de base. Qu'il s'agisse de développement de programmes dans l'espace utilisateur ou dans l'espace noyau, les timers sont souvent nécessaires comme support en tant que composant de base. L'implémentation d'un minuteur doit avoir les quatre comportements de base suivants : ajout d'un minuteur, annulation du minuteur, vérification du minuteur et exécution de l'expiration.
Veuillez concevoir une minuterie et implémenter les trois comportements de base suivants. Le prototype de fonction a été donné. Vous pouvez utiliser n'importe quel langage de programmation pour concevoir la structure et l'implémentation des données, et prendre en charge un grand nombre de minuteries. efficacement que possible :
// Ajouter une minuterie : effectuer l'opération cible après un intervalle de temps spécifique
// Entrée 1 : Temps de minuterie d'intervalle, unité ms
/ / Entrée 2 : Opération cible ExpiryAction
// Retour : TimerId
StartTimer(Interval, ExpiryAction) -> >
// Annuler la minuterie
// Entrée : Id de la minuterie
StopTimer(TimerId)
// Vérification de la minuterie
// Le système appellera cette fonction toutes les 10 ms
PerTickBookkeeping()
Sans plus tarder, passons directement au 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; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!