logo

¿Cómo configurar el temporizador en Java?

Clase de temporizador Java

En Java, Temporizador es una clase que pertenece a la java.util paquete. Se extiende el Objeto clase e implementa el Serializable interfaz. La clase proporciona los constructores y métodos que se pueden utilizar para realizar actividades relacionadas con el tiempo. Usando la clase Timer, podemos programar la tarea que queremos ejecutar en un momento determinado.

Tenga en cuenta que la clase Timer es una clase segura para subprocesos. Significa que solo un hilo puede ejecutar el método de la clase de temporizador. Otro punto a tener en cuenta es que la clase utiliza una estructura de datos de montón binario para almacenar su tarea.

Programas Java con temporizador

Programar una tarea para que la ejecute el subproceso del temporizador

ScheduleTimer.java

 import java.util.Calendar; import java.util.Timer; import java.util.TimerTask; public class ScheduleTimer { public static void main(String args[]) { //instance of the Timer class Timer timer = new Timer(); TimerTask task = new TimerTask() { //represent the time after which the task will begin to execute int i = 5; @Override public void run() { if(i>0) { System.out.println(i); i--; } else { System.out.println('Wish You Very Happy Birthday!!'); //cancel the task once it is completed timer.cancel(); } } }; //creating an instance of the Calendar class Calendar date = Calendar.getInstance(); //setting the date and time on which timer will begin date.set(2022, Calendar.MARCH, 30,23, 59, 54); //enables the counter to count at a rate of 1 second timer.scheduleAtFixedRate(task, date.getTime(), 1000); } } 

Producción:

guardar desde
 5 4 3 2 1 Wish You Very Happy Birthday!! 

Veamos otro programa Java en el que hemos ejecutado una tarea tras un intervalo de tiempo concreto.

TimerDemo.java

 import java.util.Timer; import java.util.TimerTask; public class TimerDemo { Timer timer = new Timer(); TimerDemo(int seconds) { //schedule the task timer.schedule(new RemindTask(), seconds*1000); } class RemindTask extends TimerTask { public void run() { System.out.println('You have a notification!'); //terminate the timer thread timer.cancel(); } } //driver code public static void main(String args[]) { //function calling new TimerDemo(10); } } 

Producción:

 You have a notification! 

El programa tarda 10 segundos en mostrar el mensaje en la consola.

Iniciar y detener un temporizador

StartStopTimer.java

 import java.util.Timer; import java.util.TimerTask; class Task extends TimerTask { int counter; public Task() { counter = 0; } public void run() { counter++; System.out.println('Ring ' + counter); } public int getCount() { return counter; } } public class StartStopTimer { private boolean running; private Task task; private Timer timer; public StartStopTimer() { timer = new Timer(true); } public boolean isRinging() { return running; } public void startRinging() { running = true; task = new Task(); timer.scheduleAtFixedRate(task, 0, 3000); } public void doIt() { running = false; System.out.println(task.getCount() + ' times'); task.cancel(); } public static void main(String args[]) { StartStopTimer phone = new StartStopTimer(); phone.startRinging(); try { System.out.println('started running...'); Thread.sleep(20000); } catch (InterruptedException e) { } phone.doIt(); } } 

Producción:

Cómo configurar el temporizador en Java

De manera similar, también podemos crear un temporizador de cuenta regresiva usando la clase Timer.