Zastosowanie licznika wątku Java

Zastosowanie licznika wątku Java
W Javie timer to klasa, z której można utworzyć obiekty licznika. Timer planuje zadanie wykonania w najbliższej przyszłości. Zadanie jest jak metoda (funkcja). Java ma klasę, Timertask, z których obiekty zadania można utworzyć. W różnych momentach planowane są różne zadania (wykonanie). Ten samouczek wyjaśnia, jak utworzyć instancję i używanie obiektu timera w Javie, zaczynając od tworzenia instancji obiektu Timertaska i jego natury.

Treść artykułu

  • Timertask
  • Regulator czasowy
  • Wykonanie każdego zadania
  • Wykonanie dowolnego zadania więcej niż raz
  • Wniosek

Timertask

Obiekt Timertask może być postrzegany jako obiekt funkcyjny. Klasa Timertask musi być importowana (Java.Util.* pakiet). Składnia instancji to:

chroniony timertask ()

Zarezerwowane słowo „chronione” oznacza, że ​​można je zdefiniować tylko (wdrożenie) przez podklasę (rozszerza). Poniższy segment kodu określa klasę Timertask:

Klasa TT rozszerza Timertask
String str;
Tt (String st)
str = st;

public void run ()
System.na zewnątrz.println (str);

Klasa Timertask jest klasą abstrakcyjną, ponieważ ma metodę abstrakcyjną, run (), której składnią jest:

publiczne streszczenie void run ()

Metoda run () musi być zaimplementowana w klasie TT. Tutaj klasa TT jest użyteczną klasą Timertask. Metoda run () jest główną metodą klasy Timertask. Ta metoda run () jest skutecznym zadaniem. W takim przypadku implementacja metody TT Run () ma tylko jedno stwierdzenie. Gdy klasa TT jest stosowana jako argument obiektu, w metodzie obiektu timera wykonywana jest metoda run (. Instację tej klasy TT jest według wyrażenia:

nowy TT (strobj);

Tak więc w metodzie main () w segmencie kodu,

TT T1 = nowy TT („Zadanie 1.");
T1.uruchomić();

wydrukuje,

Zadanie 1.

Trzy obiekty, takie jak T1, zostaną utworzone poniżej dla trzech różnych zadań dla obiektu timera.

Regulator czasowy

Klasa timera ma cztery przeciążone konstruktory, ale tylko jeden zostanie tutaj rozważony. Klasa timera znajduje się w Javie.Util.* pakiet. Składnia konstrukcji klas timer jest:

Timer publiczny ()

Oznacza to, że klasa timera zostanie utworzona instancją o stwierdzenie takiego:

Timer t = nowy timer ();

Metody klasy licznika

Istnieje 8 metod klasy timera. Tylko cztery są brane pod uwagę w tym artykule. W tej sekcji rozważane są trzy:

Harmonogram (zadanie Timertask, Długie opóźnienie)

Ta metoda zaplanuje obiekt Timertask, który ma działać po wielu milisekundach (opóźnienie). Pełna składnia to:

Publiczny harmonogram void (zadanie timertask, długie opóźnienie)

anulować()

Ta metoda timera kończy liczbę czasu, odrzucając wszelkie obecnie zaplanowane zadania. Pełna składnia to:

Public void Anuluj ()
oczyszczać()

Pełna składnia to:

public int Purge ()

Ta metoda timera usuwa wszystkie anulowane zadania z kolejki zadania timera, uwalniając pamięć.

Wykonanie każdego zadania

Jeden obiekt timera może wykonać (uruchomić) więcej niż jeden obiekt Timertask. Metoda run () obiektu Timertask jako argumentu w metodzie harmonogramu obiektu timera będzie działać po opóźnionym czasie (milisekund). 1000ms = 1s. Poniższa klasa TT pokazuje dobry kod, jak tworzyć instancję obiektów Timertask:

Importuj Java.Util.*;
Klasa TT rozszerza Timertask
String str; int num; Timer Tim;
Tt (String st, int no, timer timer)
str = st; num = nie; tim = timer;

public void run ()
System.na zewnątrz.println (str);
if (num == 3)
Tim.anulować(); Tim.oczyszczać();

Obiekty utworzone z klasy TT mają powiązane liczby. W metodzie Main () dla tej klasy istnieją trzy obiekty TT. Konstruktor dla każdego z tych obiektów jest konstruktorem dla tej klasy. Pierwszym parametrem metody konstruktora jest ciąg. To jest ciąg, który wydrukuje metoda run () obiektu,. Drugi parametr to liczba powiązana z obiektem. Trzy utworzone obiekty z tej klasy mają powiązane liczby od 1 do 3. Następnym parametrem jest obiekt timera. Obiekt timera jest utworzony utworzeniem w metodzie Main (). Ten sam obiekt timera wykona każdy z tych trzech obiektów, każdy po zaplanowanym czasie trwania. Każdy obiekt ma inny ciąg (pierwszy argument).

Jest to ostatni obiekt, który zostanie uruchomiony, który zatrzyma licznik czasu. Do tego stosuje się metoda anulowania timera. Ten sam ostatni obiekt wyczyści obiekt timera. Ostatni obiekt TT jest powiązany z liczbą, 3. Z tego powodu następujący kod znajduje się w metodzie run () klasy TT:

if (num == 3)
Tim.anulować(); Tim.oczyszczać();
Główną klasą z główną metodą jest:
Klasa publiczna THEClass
public static void main (string [] args)
Timer t = nowy timer ();
TT T1 = nowy TT („Zadanie 1.", 1, t);
TT T2 = nowy TT („Zadanie 2.", 2, t);
TT T3 = nowy TT („Zadanie 3.", 3, t);
T.harmonogram (T1, 1000);
T.harmonogram (T2, 2000);
T.harmonogram (T3, 3000);

Po obiekcie timera T został utworzony z klasy timera, trzy inne obiekty są tworzone z klasy Timertask (TT). Zwróć uwagę na różne argumenty konstruktorów tych trzech obiektów. Pierwszym argumentem jest wyświetlany ciąg, który charakteryzuje jego obiekt. Następnym argumentem jest powiązana liczba. Ostatnim argumentem jest obiekt timera, taki sam dla wszystkich trzech obiektów.

Następnie w kodzie ten sam obiekt timera działa T1 po 1 sekundzie (1000 milisekund). Działa T2 po 2s. Działa T3 po 3s. W tej sytuacji wystarczy mieć nazwę obiektu jako pierwszy argument metody harmonogramu obiektów Timera. Po jednej sekundzie wyjście to:

Zadanie 1.

A po 1 sekundzie znowu jest,

Zadanie 2.

A w czwartej sekundzie jest to:

Zadanie 3.

Następnie z powodu klimatu If i jego „Tim.anulować();" W przypadku trzeciego obiektu obiekt timera kończy się, a program kończy się.

Wykonanie dowolnego zadania więcej niż raz

Zadaniem jest obiekt Timertask Ordandited (TT), którego skuteczność to metoda run (). Każdy obiekt TT może być wykonany do działania (wykonania) wielokrotnie w nieskończoność, aż do spełnienia stanu. Metoda timera to:

Publiczny harmonogram void (zadanie Timertask, długie opóźnienie, długi okres)

Tak więc każde zadanie wykona pierwszy raz, po długim opóźnieniu. Po długim okresie (trzeci parametr) zostanie ponownie wykorzystany; Po tym samym długim okresie (czas trwania) zostanie ponownie wykluczony, powtarzając, aż do spełnienia warunku obiektu timera. W poniższym kodzie pierwsze i drugie zadania (obiekty Timertask) są powtarzane dwukrotnie (trzy zdarzenia). Trzecie zadanie jest wykonywane po normalnym opóźnieniu, raz. Ma warunek timera, który zatrzymuje timer (i bez powtórzenia).

Klasa publiczna THEClass
public static void main (string [] args)
Timer t = nowy timer ();
TT T1 = nowy TT („Zadanie 1.", 1, t);
TT T2 = nowy TT („Zadanie 2.", 2, t);
TT T3 = nowy TT („Zadanie 3.", 3, t);
T.harmonogram (T1, 1000, 2000);
T.harmonogram (T2, 2000, 2000);
T.harmonogram (T3, 6000);

Po jednej sekundzie wyjście jest,

Zadanie 1.

a po opóźnieniu dwóch sekund, od samego początku, wyjście jest,

Zadanie 2.

Po odstępie 2 sekund od momentu wykonania pierwszego zadania, wyjście z powodu pierwszego zadania jest,

Zadanie 1.

a po odstępie 2 sekund od momentu wykonania drugiego zadania, wyjście z powodu drugiego zadania jest,

Zadanie 2.

Po przedziale 2 sekund od czasu ostatniego wykonania pierwszego zadania, dane wyjściowe z powodu pierwszego zadania jest,

Zadanie 1.

a po przedziale 2 sekund od czasu ostatniego wykonania drugiego zadania, wyjście z powodu drugiego zadania jest,

Zadanie 2.

Po normalnym opóźnieniu 6 sekund wyjście z powodu trzeciego zadania, które ma warunek zatrzymania, jest

Zadanie 3.

Wniosek

Klasa timera działa z klasą Timertask. Klasa Timertask jest klasą abstrakcyjną, a zatem musi być odziedziczona; i jego jedyna abstrakcyjna metoda, run () musi zostać wdrożona. Z tej klasy (TT powyżej) można utworzyć dowolną liczbę obiektów zadań. Jeśli chodzi o klasę timera, jeden obiekt powinien zostać utworzony z niego. Obiekt jednego timera można następnie użyć do wykonywania różnych obiektów Timertask w różnych momentach. Jeden z obiektów Timertask powinien zatrzymać obiekt timera.

Chrys