Clase Java.util.TimerTask en Java

TimerTask es una clase abstracta definida en el paquete java.util. La clase TimerTask define una tarea que se puede programar para que se ejecute solo una vez o por varias veces. Para definir un objeto TimerTask, esta clase debe implementarse y el método de ejecución debe anularse. El método de ejecución se invoca implícitamente cuando un objeto de temporizador lo programa para hacerlo. 

Nota: Se utiliza una instancia de la clase TimerTask para definir una tarea que debe ejecutarse periódicamente. 

Constructores:

  • TimerTask() : crea una nueva tarea de temporizador

Declaración:

public abstract class TimerTask
        extends Object
        implements Runnable

Métodos:

  • cancel(): java.util.TimerTask.cancel() Cancela esta tarea del temporizador 
  • Sintaxis:
public boolean cancel()
Returns:
true if this task is scheduled for one-time execution and
has not yet run, or this task is scheduled for repeated execution. 
Returns false if the task was scheduled for one-time 
execution and has already run, or if the task was never scheduled, 
or if the task was already cancelled.
  • run(): java.util.TimerTask.run() La acción que realizará esta tarea del temporizador 
  • Sintaxis:
public abstract void run()
Description:
The action to be performed by this timer task
  • ScheduledExecutionTime(): java.util.TimerTask.scheduledExecutionTime() Devuelve el tiempo de ejecución programado de la ejecución real más reciente de esta tarea 
  • Sintaxis:
public long scheduledExecutionTime()
Returns: 
the time at which the most recent execution of this task was 
scheduled to occur, in the format returned by Date.getTime(). 
The return value is undefined if the task has yet to 
commence its first execution

Métodos heredados de la clase java.lang.Object

  • clon
  • es igual
  • finalizar
  • obtenerClase
  • código hash
  • notificar
  • notificar a todos
  • Espere

Programa Java para demostrar el uso de la clase TimerTask

Java

// Java program to demonstrate
// working of TimerTask class
import java.util.Timer;
import java.util.TimerTask;
 
class Helper extends TimerTask
{
    public static int i = 0;
    public void run()
    {
        System.out.println("Timer ran" + ++i);
        if(i == 4)
        {
            synchronized(Test.obj)
            {
                Test.obj.notify();
            }
        }
    }
     
}
 
 
public class Test
{
    public static Test obj;
    public static void main(String[] args) throws InterruptedException
    {
        obj = new Test();
         
        // creating an instance of timer class
        Timer timer = new Timer();
         
        // creating an instance of task to be scheduled
        TimerTask task = new Helper();
         
        // scheduling the timer instance
        timer.schedule(task, 1000, 3000);
         
        // fetching the scheduled execution time of
        // the most recent actual execution of the task
        System.out.println(task.scheduledExecutionTime());
         
        synchronized(obj)
        {
            //this thread waits until i reaches 4
            obj.wait();
        }
         
        //canceling the task assigned
        System.out.println("Cancel the timer task: " + task.cancel());
         
        // at this point timer is still running
        // without any task assigned to it
     
        // canceling the timer instance created
        timer.cancel();
    }
}

Producción:

1495715853591
Timer ran 1
Timer ran 2
Timer ran 3
Timer ran 4
Cancel the timer task: true

Referencia:

Este artículo es una contribución de Mayank Kumar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *