Java Thread Timer Bruk

Java Thread Timer Bruk
I Java er en tidtaker en klasse som tidtakeren kan bli instantiert. Timeren planlegger oppgave for utførelse i nær fremtid. En oppgave er som en metode (funksjon). Java har klassen, tidsperioden som oppgaveobjekter kan bli instantiert. Ulike oppgaver er planlagt å operere (utføre) til forskjellige tider. Denne opplæringen forklarer hvordan du instantiserer og bruker tidtakerobjektet i Java, og begynner med oppstart av tidsperioden og dens natur.

Artikkelinnhold

  • Timertask
  • Timer
  • Utføre hver oppgave en gang
  • Utføre enhver oppgave mer enn en gang
  • Konklusjon

Timertask

Timertask -objektet kan sees på som et funksjonsobjekt. Timertask -klassen må importeres (Java.util.* pakke). Syntaksen for instantiering, er:

beskyttet tidspertaske ()

Det reserverte ordet, "beskyttet" betyr at det bare kan defineres (implementeres) ved underklasse (utvider). Følgende kodesegment definerer en timertask -klasse:

Klasse TT utvider timertask
Streng str;
Tt (String st)
Str = ST;

public void run ()
System.ute.println (str);

Timertask -klassen er en abstrakt klasse, fordi den har den abstrakte metoden, Run () hvis syntaks er:

Offentlig abstrakt void Run ()

Run () -metoden må implementeres i TT -klassen. Her er TT -klassen den brukbare timertask -klassen. Run () -metoden er hovedmetoden for timertask -klassen. Denne kjøremetoden er den effektive oppgaven. I dette tilfellet har TT Run () -metodeimplementeringen bare en uttalelse. Når TT -klassen brukes som et objektargument, i Timer -objektmetoden, utføres RUN () -metoden. Instantiering av denne TT -klassen er av uttrykket:

ny TT (Strobj);

Så i hovedmetoden (), kodesegmentet,

TT T1 = Ny TT ("Oppgave 1.");
T1.løpe();

vil trykke,

Oppgave 1.

Tre objekter som T1 vil bli opprettet nedenfor for tre forskjellige oppgaver for timerobjektet.

Timer

Timerklassen har fire overbelastede konstruktører, men bare en vil bli vurdert her. Timerklassen er i Java.util.* pakke. Syntaksen til timerklassekonstruksjonen er:

offentlig timer ()

Dette betyr at timerklassen vil bli instantiert med en uttalelse som:

Timer t = ny timer ();

Metoder for timerklassen

Det er 8 metoder i timerklassen. Bare fire blir vurdert i denne artikkelen. Tre blir vurdert i denne delen:

Planlegg (timersoppgave, lang forsinkelse)

Denne metoden planlegger et timers objekt som skal kjøres etter en rekke millisekunder (forsinkelse). Full syntaks er:

Public Void Schedule (Timertask Task, Long Delay)

Avbryt()

Denne metoden for tidtakeren avslutter tidtakeren, og kasserer eventuelle planlagte oppgaver. Full syntaks er:

public void Cancel ()
rense ()

Full syntaks er:

public int purge ()

Denne metoden for tidtakeren fjerner alle kansellerte oppgaver fra tidtakers oppgavekø, og frigjør minne.

Utføre hver oppgave en gang

Ett timerobjekt kan utføre (kjøre) mer enn ett timers objekt. Run () -metoden for timertask -objektet som argument i tidsplanmetoden til timerobjektet, vil kjøres etter en forsinket tid (millisekunder). 1000ms = 1s. Følgende TT -klasse viser en god kode for hvordan du installerer TIMERTASK -objekter:

Importer Java.util.*;
Klasse TT utvider timertask
Streng str; int num; Timer Tim;
TT (String ST, INT NO, TIMER TIMER)
Str = ST; num = nei; Tim = Timer;

public void run ()
System.ute.println (str);
if (num == 3)
tim.Avbryt(); tim.rense ();

Objektene som er instantiert fra TT -klassen, har tilknyttede tall. I hovedmetoden () for denne klassen er det tre TT -objekter. Konstruktøren for hvert av disse objektene, er konstruktøren for denne klassen. Den første parameteren til konstruktørmetoden er en streng. Dette er strengen som Run () -metoden til objektet vil skrive ut. Den andre parameteren er tallet tilknyttet objektet. De tre instantierte objektene fra denne klassen har tilknyttet tall fra 1 til 3. Neste parameter er tidtakeren. Timerobjektet blir instantiert i hovedmetoden (). Det samme tidsobjektet vil utføre hvert av disse tre objektene, hver etter en planlagt varighet. Hvert objekt har en annen streng (første argument).

Det er det siste objektet som kjøres som vil stoppe tidtakeren. Timer Cancely -metoden brukes til dette. Det samme siste objektet vil rense timerobjektet. Det siste TT -objektet er assosiert med tallet, 3. Det er på grunn av alle disse at følgende kode er i kjøremetoden () i TT -klassen:

if (num == 3)
tim.Avbryt(); tim.rense ();
Hovedklassen med hovedmetoden, er:
public class theclass
public static void main (String [] args)
Timer t = ny timer ();
TT T1 = Ny TT ("Oppgave 1.", 1, t);
TT T2 = Ny TT ("Oppgave 2.", 2, t);
TT T3 = Ny TT ("Oppgave 3.", 3, t);
t.plan (T1, 1000);
t.plan (T2, 2000);
t.plan (T3, 3000);

Etter tidtakerobjektet har T blitt instantiert fra timerklassen, tre andre objekter blir instantiert fra TIMERTASK (TT) -klassen. Legg merke til de forskjellige argumentene til konstruktørene av disse tre objektene. Det første argumentet er strengen som skal vises, som kjennetegner objektet. Neste argument er det tilknyttede antallet. Det siste argumentet er timerobjektet, det samme for alle tre objektene.

Etter det i koden kjører det samme tidsobjektet T1 etter 1 sekund (1000 millisekunder). Det kjører T2 etter 2s. Det kjører T3 etter 3 -tallet. Å ha objektnavnet som det første argumentet for tidsplanmetoden for tidtakerobjekt er nok i denne situasjonen til å føre til at RUN () -metoden til hvert tidsobjekt skal utføre. Etter ett sekund er utgangen:

Oppgave 1.

Og etter 1 sekund igjen, er det,

Oppgave 2.

Og i fjerde sekund er det:

Oppgave 3.

Da på grunn av If-condition og dens “tim.Avbryt();" For det tredje objektet avsluttes timerobjektet og programmet slutter.

Utføre enhver oppgave mer enn en gang

En oppgave er et TIMTASK -arvelig (TT) objekt, hvis effektivitet er RUN () -metoden. Hvert TT -objekt kan lages for å kjøre (utføre) gjentatte ganger på ubestemt tid, til en tilstand er oppfylt. Timermetoden for dette er:

Public voidplan (timersoppgave, lang forsinkelse, lang periode)

Så hver oppgave vil utføre første gang, etter lang forsinkelse. Etter en lang periode (tredje parameter) vil den utføre seg på nytt; Etter den samme lange perioden (varigheten) vil den utføre seg på nytt, gjenta, inntil en betingelse for timerobjektet er oppfylt. I den følgende koden gjentas de første og andre oppgavene (TIMERTASK -objekter) hver to ganger (tre forekomster). Den tredje oppgaven utføres etter normal forsinkelse, en gang. Den har timertilstanden som stopper tidtakeren (og ingen repetisjon).

public class theclass
public static void main (String [] args)
Timer t = ny timer ();
TT T1 = Ny TT ("Oppgave 1.", 1, t);
TT T2 = Ny TT ("Oppgave 2.", 2, t);
TT T3 = Ny TT ("Oppgave 3.", 3, t);
t.plan (T1, 1000, 2000);
t.plan (T2, 2000, 2000);
t.plan (T3, 6000);

Etter ett sekund er utgangen,

Oppgave 1.

Og etter forsinkelsen på to sekunder, fra starten av, er utgangen,

Oppgave 2.

Etter et intervall på 2 sekunder fra den første oppgaven ble utført, er utgangen på grunn av den første oppgaven,

Oppgave 1.

og etter et intervall på 2 sekunder fra den andre oppgaven ble utført, er utgangen på grunn av den andre oppgaven,,

Oppgave 2.

Etter et intervall på 2 sekunder fra da den første oppgaven ble utført sist, er utgangen på grunn av den første oppgaven,

Oppgave 1.

og etter et intervall på 2 sekunder fra da den andre oppgaven sist ble utført, er utgangen på grunn av den andre oppgaven,,

Oppgave 2.

Etter en normal forsinkelse på 6 sekunder er utgangen på grunn av den tredje oppgaven, som har stopptilstanden,

Oppgave 3.

Konklusjon

Timerklassen fungerer med timertask -klassen. Timertask -klassen er en abstrakt klasse, og må derfor arves; og den eneste abstrakte metoden, kjør () må implementeres. Fra denne klassen (TT ovenfor) kan et hvilket som helst antall oppgaveobjekter bli instantiert. Når det gjelder timerklassen, bør ett objekt bli instantiert fra den. Det ene timerobjektet kan deretter brukes til å utføre de forskjellige tidsperiodeobjektene til forskjellige tider. Et av tidspertaskeobjektene skal stoppe tidtakerobjektet.

Chrys