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