Clase Java.util.Timer en Java

La clase de temporizador proporciona una llamada de método que utiliza un subproceso para programar una tarea, como ejecutar un bloque de código después de un instante de tiempo regular. Cada tarea puede programarse para ejecutarse una vez o para un número repetido de ejecuciones. Cada objeto temporizador está asociado con un subproceso de fondo que es responsable de la ejecución de todas las tareas de un objeto temporizador. 
Nota: 

  • La clase de temporizador es segura para subprocesos.
  • La clase de temporizador utiliza una estructura de datos de montón binario para almacenar su tarea.

Constructores: 

  • Temporizador() : crea un nuevo temporizador
  • Timer(boolean isDaemon) : crea un nuevo temporizador cuyo subproceso asociado puede especificarse para ejecutarse como un demonio
  • Temporizador (nombre de string) : crea un nuevo temporizador cuyo hilo asociado tiene el nombre especificado
  • Timer(String name, boolean isDaemon) : crea un nuevo temporizador cuyo subproceso asociado tiene el nombre especificado y puede especificarse para ejecutarse como un demonio

Declaración:  

public class Timer
        extends Object

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

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

Métodos: 

  • cancel(): java.util.Timer.cancel() Termina este temporizador, descartando cualquier tarea programada actualmente. No interfiere con una tarea que se está ejecutando actualmente (si existe). Una vez que se ha terminado un temporizador, su subproceso de ejecución finaliza correctamente y no se pueden programar más tareas en él 
    . Sintaxis: 
public void cancel()
  • purge(): java.util.Timer.purge() Elimina todas las tareas canceladas de la cola de tareas de este temporizador 
    Sintaxis: 
public int purge()
Returns:
the number of tasks removed from the queue
  • schedule(tarea TimerTask, fecha y hora): java.util.Timer.schedule(tarea TimerTask, fecha y hora) Programa la tarea especificada para que se ejecute a la hora especificada 
    Sintaxis: 
public void schedule(TimerTask task, Date time)
Parameters:
task - task to be scheduled.
time - time at which task is to be executed.
Throws:
IllegalArgumentException - if time.getTime() is negative.
IllegalStateException - if the task was already scheduled or cancelled, 
the timer was cancelled, or timer thread terminated.
NullPointerException - if task or time is null
  • schedule(TimerTask task, Date firstTime, long period): java.util.Timer.schedule(TimerTask task, Date firstTime, long period) Programa la tarea especificada para una ejecución repetida con retraso fijo, comenzando a la hora especificada 
    Sintaxis: 
public void schedule(TimerTask task, Date firstTime, long period)
Parameters:
task - task to be scheduled.
firstTime - First time at which task is to be executed.
period - time in milliseconds between successive task executions.
Throws:
IllegalArgumentException - if firstTime.getTime() < 0,
 or period <= 0
IllegalStateException - if task was already scheduled 
or cancelled, timer was cancelled, 
or timer thread terminated.
NullPointerException - if task or firstTime is null

Java

// Java program to demonstrate
//schedule method calls of Timer 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);
    }
}
 
public class Test
{
    public static void main(String[] args)
    {
         
        Timer timer = new Timer();
        TimerTask task = new Helper();
         
        timer.schedule(task, 2000, 5000);
         
    }
}

Producción: 

Timer ran 1
Timer ran 2
Timer ran 3
Timer ran 4
Timer ran 5
.
.
.
  • schedule(TimerTask task, long delay): java.util.Timer.schedule(TimerTask task, long delay) Programa la tarea especificada para su ejecución después del retraso especificado 
    Sintaxis: 
public void schedule(TimerTask task, long delay)
Parameters:
task - task to be scheduled.
delay - delay in milliseconds before task is to be executed.
Throws:
IllegalArgumentException - if delay is negative,
or delay + System.currentTimeMillis() is negative.
IllegalStateException - if a task was already scheduled 
or cancelled, the timer was cancelled, 
or timer thread terminated.
NullPointerException - if task is null
  • schedule(TimerTask task, long delay, long period): java.util.Timer.schedule(TimerTask task, long delay, long period) Programa la tarea especificada para una ejecución repetida con retraso fijo, comenzando después del retraso especificado Sintaxis: 
     
public void schedule(TimerTask task, long delay, long period)
Parameters:
task - task to be scheduled.
delay - delay in milliseconds before task is to be executed.
period - time in milliseconds between successive task executions.
Throws:
IllegalArgumentException - if delay < 0, 
or delay + System.currentTimeMillis() < 0, or 
period <= 0
IllegalStateException - if task was already scheduled 
or cancelled, timer was cancelled, 
or timer thread terminated.
NullPointerException - if task is null
  • scheduleAtFixedRate(TimerTask task, Date firstTime, long period): java.util.Timer.scheduleAtFixedRate(TimerTask task, Date firstTime, long period) Programa la tarea especificada para una ejecución repetida a tasa fija, comenzando a la hora especificada Sintaxis: 
     
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
Parameters:
task - task to be scheduled.
firstTime - First time at which task is to be executed.
period - time in milliseconds between successive task executions.
Throws:
IllegalArgumentException - if firstTime.getTime() <
0 or period <= 0
IllegalStateException - if task was already scheduled
 or cancelled, timer was cancelled, 
or timer thread terminated.
NullPointerException - if task or firstTime is null
  • scheduleAtFixedRate(TimerTask task, long delay, long period): java.util.Timer.scheduleAtFixedRate(TimerTask task, long delay, long period) Programa la tarea especificada para una ejecución repetida a tasa fija, comenzando después del retraso especificado Sintaxis: 
     
public void scheduleAtFixedRate(TimerTask task, long delay, long period)
Parameters:
task - task to be scheduled.
delay - delay in milliseconds before task is to be executed.
period - time in milliseconds between successive task executions.
Throws:
IllegalArgumentException - if delay < 0, 
or delay + System.currentTimeMillis() < 0, or 
period <= 0
IllegalStateException - if task was already 
scheduled or cancelled, timer was cancelled, 
or timer thread terminated.
NullPointerException - if task is null

Java

// Java program to demonstrate
// scheduleAtFixedRate method of Timer class
 
import java.util.Timer;
import java.util.TimerTask;
import java.util.*;
 
 
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
{
    protected static Test obj;
    public static void main(String[] args) throws InterruptedException
    {
        obj = new Test();
         
        //creating a new instance of timer class
        Timer timer = new Timer();
        TimerTask task = new Helper();
 
        //instance of date object for fixed-rate execution
        Date date = new Date();
 
        timer.scheduleAtFixedRate(task, date, 5000);
         
        System.out.println("Timer running");
        synchronized(obj)
        {
            //make the main thread wait
            obj.wait();
             
            //once timer has scheduled the task 4 times,
            //main thread resumes
            //and terminates the timer
            timer.cancel();
             
            //purge is used to remove all cancelled
            //tasks from the timer'stack queue
            System.out.println(timer.purge());
        }
    }
}

Producción: 

Timer running
Timer ran 1
Timer ran 2
Timer ran 3
Timer ran 4
0

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 *