Classe de temporitzadors Java
A Java, Temporitzador és una classe que pertany a la java.util paquet. S'estén el Objecte classe i implementa el Serialitzable interfície. La classe proporciona els constructors i els mètodes que es poden utilitzar per realitzar activitats relacionades amb el temps. Mitjançant la classe Timer, podem programar la tasca que volem executar en un moment concret.
Tingueu en compte que la classe Timer és una classe segura per a fils. Vol dir que només un fil pot executar el mètode de classe del temporitzador. Un altre punt a tenir en compte que la classe utilitza l'estructura de dades de pila binària per emmagatzemar la seva tasca.
Programes de temporitzador Java
Programació d'una tasca que s'executa mitjançant Timer Thread
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); } }
Sortida:
exemple de java hola món
5 4 3 2 1 Wish You Very Happy Birthday!!
Vegem un altre programa Java en el qual hem executat una tasca després d'un interval de temps concret.
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); } }
Sortida:
You have a notification!
El programa triga 10 segons a mostrar el missatge a la consola.
Iniciar i aturar un temporitzador
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(); } }
Sortida:
De la mateixa manera, també podem crear un temporitzador de compte enrere mitjançant la classe Timer.