Utilizzo del timer thread Java

Utilizzo del timer thread Java
In Java, un timer è una classe da cui gli oggetti del timer possono essere istanziati. Il timer pianifica l'attività per l'esecuzione nel prossimo futuro. Un'attività è come un metodo (funzione). Java ha la classe, timerk da cui gli oggetti di attività possono essere istanziati. Diverse attività sono programmate per funzionare (eseguire) in momenti diversi. Questo tutorial spiega come istanziare e utilizzare l'oggetto timer in Java, a cominciare dall'istanziazione dell'oggetto TimerTask e della sua natura.

Contenuto dell'articolo

  • Timertask
  • Timer
  • Eseguire ogni attività una volta
  • Eseguire qualsiasi attività più di una volta
  • Conclusione

Timertask

L'oggetto TimerTask può essere visto come un oggetto funzione. La classe TimerTask deve essere importata (il Java.util.* pacchetto). La sintassi per l'istanziazione è:

TimerTask protetto ()

La parola riservata, "protetto", significa che può essere definita (implementata) solo mediante sottoclasse (estende). Il seguente segmento di codice definisce una classe TimerTask:

class TT estende TimerTask
String STR;
Tt (string ST)
str = st;

public void run ()
Sistema.fuori.println (str);

La classe TimerTask è una classe astratta, perché ha il metodo astratto, run () la cui sintassi è:

Public Abstract void run ()

Il metodo run () deve essere implementato nella classe TT. Qui, la classe TT è la classe TimerTask utilizzabile. Il metodo run () è il metodo principale della classe TimerTask. Questo metodo run () è l'attività efficace. In questo caso, l'implementazione del metodo TT run () ha solo una dichiarazione. Quando la classe TT viene utilizzata come argomento oggetto, nel metodo oggetto timer, viene eseguito il metodo run (). L'istanziazione di questa classe TT è per espressione:

nuovo TT (Strobj);

Quindi, nel metodo principale (), il segmento di codice,

TT T1 = nuovo TT ("Attività 1.");
T1.correre();

Stamperò,

Attività 1.

Di seguito verranno creati tre oggetti come T1 per tre diverse attività per l'oggetto timer.

Timer

La classe timer ha quattro costruttori sovraccarichi, ma solo uno sarà considerato qui. La classe Timer è nel Java.util.* pacchetto. La sintassi della costruzione della classe timer è:

Public Timer ()

Ciò significa che la classe timer sarà istanziata con una dichiarazione come:

Timer t = new timer ();

Metodi della classe Timer

Esistono 8 metodi della classe Timer. Solo quattro sono considerati in questo articolo. Tre sono considerati in questa sezione:

Pianificazione (attività TimerTask, lungo ritardo)

Questo metodo pianifica un oggetto TimerTask da eseguire dopo un numero di millisecondi (ritardo). La sintassi completa è:

PROGRAMMA PUBBLICA NUOVO (TIMERSTASK ATTIVITÀ, LUNGO DIATTRO)

Annulla()

Questo metodo del timer termina il timer, scartando eventuali attività attualmente programmate. La sintassi completa è:

public void annulla ()
epurazione()

La sintassi completa è:

public int purge ()

Questo metodo del timer rimuove tutte le attività annullate dalla coda delle attività del timer, liberazione della memoria.

Eseguire ogni attività una volta

Un oggetto timer può eseguire (eseguire) più di un oggetto TimerTask. Il metodo Run () dell'oggetto TimerTask come argomento nel metodo di pianificazione dell'oggetto timer, eseguirà dopo un tempo ritardato (millisecondi). 1000ms = 1s. La seguente classe TT mostra un buon codice su come istanziare gli oggetti TimerTask:

Importa Java.util.*;
class TT estende TimerTask
String STR; int num; Timer Tim;
TT (String St, int no, timer timer)
str = st; num = no; Tim = timer;

public void run ()
Sistema.fuori.println (str);
if (num == 3)
Tim.Annulla(); Tim.epurazione();

Gli oggetti istanziati dalla classe TT hanno numeri associati. Nel metodo principale () per questa classe, ci sono tre oggetti TT. Il costruttore per ciascuno di questi oggetti, è il costruttore per questa classe. Il primo parametro al metodo del costruttore è una stringa. Questa è la stringa che il metodo run () dell'oggetto, verrà stampata. Il secondo parametro è il numero associato all'oggetto. I tre oggetti istanziati di questa classe hanno associato numeri da 1 a 3. Il parametro successivo è l'oggetto timer. L'oggetto timer è istanziato nel metodo principale (). Lo stesso oggetto timer eseguirà ciascuno di questi tre oggetti, ciascuno dopo una durata programmata. Ogni oggetto ha una stringa diversa (primo argomento).

È l'ultimo oggetto da eseguire che fermerà il timer. Il metodo di annullamento del timer viene utilizzato per questo. Questo stesso ultimo oggetto eliminerà l'oggetto timer. L'ultimo oggetto TT è associato al numero, 3. È a causa di tutti questi, che il seguente codice è nel metodo run () della classe TT:

if (num == 3)
Tim.Annulla(); Tim.epurazione();
La classe principale con il metodo principale è:
Classe pubblica TheClass
public static void main (string [] args)
Timer t = new timer ();
TT T1 = nuovo TT ("Attività 1.", 1, t);
TT T2 = new TT ("Attività 2.", 2, t);
TT T3 = new TT ("Task 3.", 3, t);
T.programma (T1, 1000);
T.programma (T2, 2000);
T.programma (T3, 3000);

Dopo l'oggetto timer, T è stato istanziato dalla classe Timer, altri tre oggetti sono istanziati dalla classe TimertaSK (TT). Nota i diversi argomenti dei costruttori di questi tre oggetti. Il primo argomento è la stringa da visualizzare, che caratterizza il suo oggetto. Il prossimo argomento è il numero associato. L'ultimo argomento è l'oggetto timer, lo stesso per tutti e tre gli oggetti.

Successivamente nel codice, lo stesso oggetto timer esegue T1 dopo 1 secondo (1000 millisecondi). Esegue T2 dopo 2s. Funziona T3 dopo 3s. Avere il nome dell'oggetto come il primo argomento del metodo del programma dell'oggetto timer è sufficiente in questa situazione per causare l'esecuzione del metodo run () di ciascun oggetto timer. Dopo un secondo, l'output è:

Attività 1.

E dopo 1 secondo di nuovo, lo è,

Attività 2.

E al quarto secondo, è:

Attività 3.

Quindi a causa della condizione if e del suo "Tim.Annulla();" Per il terzo oggetto, l'oggetto timer termina e il programma termina.

Eseguire qualsiasi attività più di una volta

Un'attività è un oggetto Eredited (TT) TimerTask, la cui efficacia è il metodo Run (). Ogni oggetto TT può essere fatto eseguire (eseguire) ripetutamente indefinitamente, fino a quando non viene soddisfatta una condizione. Il metodo timer per questo è:

Programma del vuoto pubblico (attività TimerTask, lungo ritardo, lungo periodo)

Quindi, ogni attività eseguirà la prima volta, dopo un lungo ritardo. Dopo un lungo periodo (terzo parametro), rieseguirà; Dopo lo stesso lungo periodo (durata), riesce, ripetendo, fino a quando non viene soddisfatta una condizione per l'oggetto timer. Nel codice seguente, le prime e le seconde attività (oggetti TimerTask) vengono ripetute due volte (tre occorrenze). La terza attività viene eseguita dopo il suo normale ritardo, una volta. Ha la condizione del timer che interrompe il timer (e nessuna ripetizione).

Classe pubblica TheClass
public static void main (string [] args)
Timer t = new timer ();
TT T1 = nuovo TT ("Attività 1.", 1, t);
TT T2 = new TT ("Attività 2.", 2, t);
TT T3 = new TT ("Task 3.", 3, t);
T.programma (T1, 1000, 2000);
T.programma (T2, 2000, 2000);
T.programma (T3, 6000);

Dopo un secondo, l'output è,

Attività 1.

e dopo il ritardo di due secondi, dall'inizio, l'uscita è,

Attività 2.

Dopo un intervallo di 2 secondi da quando è stata eseguita la prima attività, l'output a causa della prima attività è,

Attività 1.

e dopo un intervallo di 2 secondi da quando è stata eseguita la seconda attività, l'output a causa della seconda attività è,

Attività 2.

Dopo un intervallo di 2 secondi da quando la prima attività è stata eseguita l'ultima volta, l'output a causa della prima attività è,

Attività 1.

e dopo un intervallo di 2 secondi da quando la seconda attività è stata eseguita l'ultima volta, l'output a causa della seconda attività è,

Attività 2.

Dopo un normale ritardo di 6 secondi, l'output dovuto alla terza attività, che ha la condizione di arresto, è

Attività 3.

Conclusione

La classe Timer funziona con la classe TimerTask. La classe TimerTask è una classe astratta, e quindi deve essere ereditata; e il suo unico metodo astratto, run () deve essere implementato. Da questa classe (TT sopra), qualsiasi numero di oggetti di attività può essere istanziato. Per quanto riguarda la classe timer, un oggetto dovrebbe essere istanziato da esso. L'oggetto Timer può quindi essere utilizzato per eseguire i diversi oggetti TimerTask in momenti diversi. Uno degli oggetti TimerTask dovrebbe fermare l'oggetto timer.

Chrys