Maison > Java > javaDidacticiel > Exemple d'analyse des problèmes de minuterie Java

Exemple d'analyse des problèmes de minuterie Java

Y2J
Libérer: 2017-05-02 14:18:40
original
1302 Les gens l'ont consulté

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 :


 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;
 }
}
Copier après la connexion
 2)DoTimer.java :

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal