Uso del temporizador de hilo de Java

Uso del temporizador de hilo de Java
En Java, un temporizador es una clase de la que se pueden instanciar objetos de temporizador. La tarea de programas de temporizador para la ejecución en el futuro cercano. Una tarea es como un método (función). Java tiene la clase, TimeTask de la cual se pueden instanciar objetos de tarea. Están programados diferentes tareas para operar (ejecutar) en diferentes momentos. Este tutorial explica cómo instanciar y usar el objeto de temporizador en Java, comenzando con la instanciación del objeto TimeTask y su naturaleza.

Contenido del artículo

  • TimerTask
  • Temporizador
  • Ejecutando cada tarea una vez
  • Ejecutando cualquier tarea más de una vez
  • Conclusión

TimerTask

El objeto TimeTask se puede ver como un objeto de función. La clase TimeTask tiene que ser importada (la Java.utilizar.* paquete). La sintaxis para la instancia, es:

TimeTask protegido ()

La palabra reservada, "protegida" significa que solo se puede definir (implementarse) mediante la clasificación (extiende). El siguiente segmento de código define una clase de TimeTask:

La clase TT extiende TimeTask
Cuerda str;
Tt (string st)
str = st;

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

La clase TimeTask es una clase abstracta, porque tiene el método abstracto, ejecutar () cuya sintaxis es:

Public Abstract void run ()

El método run () debe implementarse en la clase TT. Aquí, la clase TT es la clase de TimeTask utilizable. El método run () es el método principal de la clase TimeTask. Este método run () es la tarea efectiva. En este caso, la implementación del método TT run () tiene solo una declaración. Cuando la clase TT se emplea como argumento de objeto, en el método del objeto del temporizador, el método run () se ejecuta. La instanciación de esta clase TT es por expresión:

nuevo TT (Strobj);

Entonces, en el método main (), el segmento de código,

Tt t1 = new tt ("tarea 1.");
T1.correr();

imprimirá,

Tarea 1.

A continuación se crearán tres objetos como T1 para tres tareas diferentes para el objeto del temporizador.

Temporizador

La clase de temporizador tiene cuatro constructores sobrecargados, pero solo uno se considerará aquí. La clase de temporizador está en el Java.utilizar.* paquete. La sintaxis de la construcción de la clase de temporizador es:

Temporizador público ()

Esto significa que la clase de temporizador se instanciará con una declaración como:

Temporizador t = nuevo temporizador ();

Métodos de la clase de temporizador

Hay 8 métodos de la clase de temporizador. Solo cuatro se consideran en este artículo. Tres se consideran en esta sección:

Programa (tarea de TimeTask, retraso largo)

Este método programa un objeto TimeTask para ejecutarse después de varios milisegundos (retraso). La sintaxis completa es:

Horario de vacío público (tarea de TimeTask, retraso largo)

Cancelar()

Este método del temporizador termina el temporizador, descartando cualquier tarea programada actualmente. La sintaxis completa es:

Public void Cancel ()
purga()

La sintaxis completa es:

Public int Purge ()

Este método del temporizador elimina todas las tareas canceladas de la cola de tareas del temporizador, liberando memoria.

Ejecutando cada tarea una vez

Un objeto de temporizador puede ejecutar (ejecutar) más de un objeto TimeTask. El método run () del objeto TimeTask como argumento en el método de programación del objeto de temporizador se ejecutará después de un tiempo retrasado (milisegundos). 1000 ms = 1s. La siguiente clase TT muestra un buen código sobre cómo instanciar los objetos de TimeTask:

importar java.utilizar.*;
La clase TT extiende TimeTask
Cuerda str; int num; Temporizador Tim;
Tt (String st, int no, temporizador de temporizador)
str = st; num = no; Tim = temporizador;

public void run ()
Sistema.afuera.println (str);
if (num == 3)
Tim.Cancelar(); Tim.purga();

Los objetos instanciados desde la clase TT tienen números asociados. En el método main () para esta clase, hay tres objetos TT. El constructor para cada uno de estos objetos es el constructor para esta clase. El primer parámetro al método del constructor es una cadena. Esta es la cadena que imprimirá el método run () del objeto. El segundo parámetro es el número asociado con el objeto. Los tres objetos instanciados de esta clase tienen números asociados de 1 a 3. El siguiente parámetro es el objeto de temporizador. El objeto del temporizador se instancia en el método main (). El mismo objeto de temporizador ejecutará cada uno de estos tres objetos, cada uno después de una duración programada. Cada objeto tiene una cadena diferente (primer argumento).

Es el último objeto que se ejecuta que detendrá el temporizador. El método de cancelación del temporizador se utiliza para esto. Este mismo último objeto purgará el objeto del temporizador. El último objeto TT, está asociado con el número, 3. Es debido a todo esto, que el siguiente código está en el método run () de la clase TT:

if (num == 3)
Tim.Cancelar(); Tim.purga();
La clase principal con el método principal es:
clase pública THECLASS
public static void main (string [] args)
Temporizador t = nuevo temporizador ();
Tt t1 = new tt ("tarea 1.", 1, t);
Tt t2 = new tt ("tarea 2.", 2, t);
Tt t3 = nueva tt ("tarea 3.", 3, t);
T.horario (T1, 1000);
T.Anexo (T2, 2000);
T.horario (T3, 3000);

Después del objeto del temporizador, T se ha instanciado desde la clase de temporizador, otros tres objetos se instancian desde la clase TimeTask (TT). Tenga en cuenta los diferentes argumentos de los constructores de estos tres objetos. El primer argumento es la cadena a mostrar, que caracteriza su objeto. El siguiente argumento es el número asociado. El último argumento es el objeto del temporizador, lo mismo para los tres objetos.

Después de eso en el código, el mismo objeto de temporizador se ejecuta T1 después de 1 segundo (1000 milisegundos). Ejecuta T2 después de 2s. Ejecuta T3 después de 3s. Tener el nombre del objeto como primer argumento del método de programación del objeto del temporizador es suficiente en esta situación para hacer que el método run () de cada objeto de temporizador ejecute. Después de un segundo, la salida es:

Tarea 1.

y después de 1 segundo de nuevo, es,

Tarea 2.

Y en el cuarto segundo, es:

Tarea 3.

Entonces debido a la condición if y su "Tim.Cancelar();" Para el tercer objeto, el objeto del temporizador termina y el programa finaliza.

Ejecutando cualquier tarea más de una vez

Una tarea es un objeto Hereded (TT) de TimeTask, cuya efectividad es el método run (). Cada objeto TT se puede ejecutar (ejecutar) repetidamente indefinidamente, hasta que se cumpla una condición. El método del temporizador para esto es:

Programa de vacío público (tarea de TimeTask, retraso largo, período largo)

Entonces, cada tarea se ejecutará la primera vez, después de un retraso largo. Después de un período largo (tercer parámetro), volverá a ejecutar; Después del mismo período largo (duración), volverá a ejecutar, repitiendo, hasta que se cumpla una condición para el objeto del temporizador. En el siguiente código, la primera y la segunda tareas (objetos de TimeTask) se repiten dos veces (tres ocurrencias). La tercera tarea se ejecuta después de su retraso normal, una vez. Tiene la condición del temporizador que detiene el temporizador (y sin repetición).

clase pública THECLASS
public static void main (string [] args)
Temporizador t = nuevo temporizador ();
Tt t1 = new tt ("tarea 1.", 1, t);
Tt t2 = new tt ("tarea 2.", 2, t);
Tt t3 = nueva tt ("tarea 3.", 3, t);
T.Programa (T1, 1000, 2000);
T.Anexo (T2, 2000, 2000);
T.horario (T3, 6000);

Después de un segundo, la salida es,

Tarea 1.

y después del retraso de dos segundos, desde el inicio, la salida es,

Tarea 2.

Después de un intervalo de 2 segundos desde que se ejecutó la primera tarea, la salida debido a la primera tarea es,

Tarea 1.

y después de un intervalo de 2 segundos desde que se ejecutó la segunda tarea, la salida debida a la segunda tarea es,

Tarea 2.

Después de un intervalo de 2 segundos desde que la primera tarea se ejecutó por última vez, la salida debida a la primera tarea es,

Tarea 1.

y después de un intervalo de 2 segundos desde que la segunda tarea se ejecutó por última vez, la salida debida a la segunda tarea es,

Tarea 2.

Después de un retraso normal de 6 segundos, la salida debido a la tercera tarea, que tiene la condición de detención, es

Tarea 3.

Conclusión

La clase de temporizador funciona con la clase TimeTask. La clase TimerTask es una clase abstracta, por lo que debe ser heredado; y su único método abstracto, run () debe implementarse. De esta clase (TT arriba), se puede instanciar cualquier número de objetos de tarea. En cuanto a la clase de temporizador, un objeto debe ser instanciado de ella. El objeto de temporizador único se puede usar para ejecutar los diferentes objetos de TimeTask en diferentes momentos. Uno de los objetos de TimeTask debe detener el objeto del temporizador.

Chrys