جافا فئة الموقت
في جافا، الموقت هي فئة تنتمي إلى java.util طَرد. ويمتد هدف الطبقة وتنفذ قابل للتسلسل واجهه المستخدم. يوفر الفصل المنشئات والأساليب التي يمكن استخدامها لأداء الأنشطة المتعلقة بالوقت. باستخدام فئة Timer، يمكننا جدولة المهمة التي نريد تنفيذها في وقت معين.
لاحظ أن فئة Timer هي فئة آمنة لمؤشر الترابط. هذا يعني أن الخيط فقط يمكنه تنفيذ طريقة فئة المؤقت. نقطة أخرى يجب ملاحظتها هي أن الفصل يستخدم بنية بيانات الكومة الثنائية لتخزين مهمته.
برامج جافا الموقت
جدولة مهمة ليتم تنفيذها بواسطة 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); } }
انتاج:
مرحبا بالعالم جافا
5 4 3 2 1 Wish You Very Happy Birthday!!
دعونا نرى برنامج Java آخر قمنا فيه بتنفيذ مهمة بعد فترة زمنية محددة.
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); } }
انتاج:
You have a notification!
يستغرق البرنامج 10 ثوانٍ لعرض الرسالة على وحدة التحكم.
بدء وإيقاف الموقت
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(); } }
انتاج:
وبالمثل، يمكننا أيضًا إنشاء مؤقت للعد التنازلي باستخدام فئة Timer.