Utilisation de la minuterie de thread Java

Utilisation de la minuterie de thread Java
Dans Java, une minuterie est une classe à partir de laquelle les objets de minuterie peuvent être instanciés. La minuterie planifie la tâche d'exécution dans un avenir proche. Une tâche est comme une méthode (fonction). Java a la classe, Timeratask à partir de laquelle les objets de tâche peuvent être instanciés. Différentes tâches sont prévues pour fonctionner (exécuter) à différents moments. Ce tutoriel explique comment instancier et utiliser l'objet Timer en Java, en commençant par l'instanciation de l'objet Timertask et de sa nature.

Contenu de l'article

  • Timinerte
  • Minuteur
  • Exécuter chaque tâche une fois
  • Exécuter n'importe quelle tâche plus d'une fois
  • Conclusion

Timinerte

L'objet Tirmertask peut être considéré comme un objet de fonction. La classe TIMERTASK doit être importée (le java.user.* emballer). La syntaxe pour l'instanciation est:

Tipertask protégé ()

Le mot réservé, «protégé» signifie qu'il ne peut être défini (implémenté) que par la sous-classe (étend). Le segment de code suivant définit une classe TIMERTASK:

La classe TT étend Timemersask
String Str;
Tt (string st)
str = st;

public void run ()
Système.dehors.println (str);

La classe TIMERTASK est une classe abstraite, car elle a la méthode abstraite, run () dont la syntaxe est:

Public Abstract Void Run ()

La méthode run () doit être implémentée dans la classe TT. Ici, la classe TT est la classe TIMERTTASK utilisable. La méthode run () est la méthode principale de la classe TIMERTASK. Cette méthode run () est la tâche efficace. Dans ce cas, l'implémentation de la méthode TT Run () n'a qu'une seule déclaration. Lorsque la classe TT est utilisée comme argument d'objet, dans la méthode de l'objet Timer, la méthode run () est exécutée. L'instanciation de cette classe TT est par l'expression:

Nouveau TT (strobj);

Donc, dans la méthode principale (), le segment de code,

Tt t1 = new tt ("tâche 1.");
T1.courir();

Will imprimer,

Tache 1.

Trois objets comme T1 seront créés ci-dessous pour trois tâches différentes pour l'objet Timer.

Minuteur

La classe de minuterie a quatre constructeurs surchargés, mais un seul sera considéré ici. La classe de minuterie est dans le java.user.* emballer. La syntaxe de la construction de la classe de minuterie est:

Public Timer ()

Cela signifie que la classe TIMER sera instanciée avec une déclaration comme:

Timer t = new Timer ();

Méthodes de la classe de minuterie

Il y a 8 méthodes de la classe de minuterie. Seuls quatre sont considérés dans cet article. Trois sont pris en compte dans cette section:

Horaire (tâche Timertask, long retard)

Cette méthode planifie un objet Tirmertask à exécuter après un certain nombre de millisecondes (retard). La syntaxe complète est:

Horaire du vide public (tâche Timetask, long retard)

Annuler()

Cette méthode de la minuterie met fin à la minuterie, jetant toutes les tâches actuellement planifiées. La syntaxe complète est:

public void annule ()
purge()

La syntaxe complète est:

public int purge ()

Cette méthode de la minuterie supprime toutes les tâches annulées de la file d'attente de la tâche de la minuterie, libérant la mémoire.

Exécuter chaque tâche une fois

Un objet Timer peut exécuter (exécuter) plus d'un objet Timemertask. La méthode RUN () de l'objet Timemerk comme argument dans la méthode de planification de l'objet Timer, s'exécutera après un temps retardé (millisecondes). 1000ms = 1. La classe TT suivante montre un bon code sur la façon d'instancier les objets Timemertask:

Importer Java.user.*
La classe TT étend Timemersask
String Str; int num; Timer Tim;
Tt (String st, int no, temporisation de minuterie)
str = st; num = non; Tim = minuterie;

public void run ()
Système.dehors.println (str);
si (num == 3)
Tim.Annuler(); Tim.purge();

Les objets instanciés de la classe TT, ont des nombres associés. Dans la méthode Main () pour cette classe, il y a trois objets TT. Le constructeur de chacun de ces objets, est le constructeur de cette classe. Le premier paramètre de la méthode du constructeur est une chaîne. Ceci est la chaîne que la méthode run () de l'objet imprimera. Le deuxième paramètre est le nombre associé à l'objet. Les trois objets instanciés de cette classe ont associé des nombres de 1 à 3. Le paramètre suivant est l'objet Timer. L'objet Timer est instancié dans la méthode principale (). Le même objet Timer exécutera chacun de ces trois objets, chacun après une durée planifiée. Chaque objet a une chaîne différente (premier argument).

C'est le dernier objet à exécuter qui arrêtera la minuterie. La méthode d'annulation de la minuterie est utilisée pour cela. Ce même dernier objet purgera l'objet Timer. Le dernier objet TT, est associé au nombre, 3. C'est à cause de tout cela, que le code suivant est dans la méthode RUN () de la classe TT:

si (num == 3)
Tim.Annuler(); Tim.purge();
La classe principale avec la méthode principale est:
classe publique TheClass
public static void main (String [] args)
Timer t = new Timer ();
Tt t1 = new tt ("tâche 1.", 1, t);
TT T2 = nouveau TT ("Tâche 2.", 2, t);
TT T3 = nouveau TT ("Tâche 3.", 3, t);
t.calendrier (T1, 1000);
t.calendrier (T2, 2000);
t.calendrier (T3, 3000);

Après l'objet Timer, T a été instancié de la classe TIMER, trois autres objets sont instanciés de la classe THIMERTASK (TT). Notez les différents arguments des constructeurs de ces trois objets. Le premier argument est la chaîne à afficher, qui caractérise son objet. L'argument suivant est le numéro associé. Le dernier argument est l'objet temporaire, le même pour les trois objets.

Après cela dans le code, le même objet Timer s'exécute T1 après 1 seconde (1000 millisecondes). Il fonctionne T2 après 2s. Il fonctionne T3 après 3s. Avoir le nom d'objet comme premier argument de la méthode du calendrier d'objet temporaire est suffisant dans cette situation pour entraîner l'exécution de la méthode RUN () de chaque objet Timer. Après une seconde, la sortie est:

Tache 1.

Et après 1 seconde encore, c'est,

Tâche 2.

Et à la quatrième seconde, c'est:

Tâche 3.

Ensuite à cause de la condition IF et de son «Tim.Annuler();" Pour le troisième objet, l'objet Timer se termine et le programme se termine.

Exécuter n'importe quelle tâche plus d'une fois

Une tâche est un objet hérité (TT) de Timemery, dont l'efficacité est la méthode Run (). Chaque objet TT peut être fait pour s'exécuter (exécuter) à plusieurs reprises indéfiniment, jusqu'à ce qu'une condition soit remplie. La méthode de la minuterie est:

Horaire du vide public (tâche Time la tâche, long retard, longue période)

Ainsi, chaque tâche exécutera la première fois, après un long retard. Après une longue période (troisième paramètre), il réexécutera; Après la même longue période (durée), elle réexécutera, se répétera jusqu'à ce qu'une condition pour l'objet de minuterie soit remplie. Dans le code suivant, les première et deuxième tâches (objets Tirmertask) sont chacune répétées deux fois (trois occurrences). La troisième tâche est exécutée après son retard normal, une fois. Il a la condition de minuterie qui arrête la minuterie (et pas de répétition).

classe publique TheClass
public static void main (String [] args)
Timer t = new Timer ();
Tt t1 = new tt ("tâche 1.", 1, t);
TT T2 = nouveau TT ("Tâche 2.", 2, t);
TT T3 = nouveau TT ("Tâche 3.", 3, t);
t.calendrier (T1, 1000, 2000);
t.calendrier (T2, 2000, 2000);
t.calendrier (T3, 6000);

Après une seconde, la sortie est,

Tache 1.

Et après le retard de deux secondes, depuis le début, la sortie est,

Tâche 2.

Après un intervalle de 2 secondes à partir de l'exécution de la première tâche, la sortie due à la première tâche est,

Tache 1.

Et après un intervalle de 2 secondes à partir de l'exécution de la deuxième tâche, la sortie due à la deuxième tâche est,

Tâche 2.

Après un intervalle de 2 secondes à partir de la dernière exécution de la première tâche, la sortie due à la première tâche est,

Tache 1.

Et après un intervalle de 2 secondes à partir de la dernière exécution de la deuxième tâche, la sortie due à la deuxième tâche est,

Tâche 2.

Après un délai normal de 6 secondes, la sortie due à la troisième tâche, qui a la condition d'arrêt, est

Tâche 3.

Conclusion

La classe TIMER fonctionne avec la classe TIMERTASK. La classe TIMERTASK est une classe abstraite et doit donc être héritée; et sa seule méthode abstraite, run () doit être implémentée. De cette classe (TT ci-dessus), n'importe quel nombre d'objets de tâche peut être instancié. Quant à la classe de minuterie, un objet doit en être instancié. L'objet One Timer peut ensuite être utilisé pour exécuter les différents objets Tirmertask à différents moments. L'un des objets Tirmertask devrait arrêter l'objet Timer.

Chrys