مزامنة سلاسل جافا مع الموقت والمؤقتالمهمة

java.util.timer  هي فئة يمكن استخدامها لجدولة (java  جدولة) المهام المرتبطة بمؤشر ترابط للتنفيذ في المستقبل. يمكن تشغيل المهام مرة واحدة أو بشكل متكرر على فترات منتظمة.

يمكن لسلاسل الرسائل المتعددة مشاركة مثيل واحد من النمط المؤقت< / span> بشرط أن يكون هناك مزامنة لمؤشرات ترابط java.

java.util.TimerTask< / b> هي فئة مجردة تنفذ نمط قابل للدوران < / امتداد>. نحتاج إلى الوراثة من هذه الفئة لإنشاء نمط TimerTask< / span > والتي سيتم جدولتها باستخدام < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >المؤقت< / الامتداد>. نمط المؤقت< / span> الطرق الانتظار والإخطار < / a> لجدولة العمليات.

فيما يلي مثال على تنفيذ المؤقت:

< pre class = "prettyprint lang-java" >import java.awt.Toolkit ؛
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

Public Class TimerTask{

مجموعة أدوات ثابتة ؛

TimerTask العام () {
toolkit = Toolkit.getDefaultToolkit ();
TimerTask timerTask = new executetask ();
// قم بتشغيل مهمة المؤقت كمؤشر ترابط deamon
مؤقت مؤقت = مؤقت جديد (صحيح) ؛
// shedule المهمة للتنفيذ المستقبلي في وقت محدد مسبقا
timer.schedule (timerTask ، 0 ، 1 * 1000) ؛
System.out.println ("تم إلغاء تشغيل TimerTask") ؛
// إلغاء بعد 10 ثوان < br / > حاول {
Thread.sleep (10000) ؛
} catch (InterruptedException e) {
e.printStackTrace();
}
timer.cancel ();
System.out.println ("توقف TimerTask ");
}

فئة executetask يمتد TimerTask {
@Override
تشغيل الفراغ العام () {
System.out.println ("يبدأ: "+ تاريخ جديد ());
جرب {
//2 ثانية لإكمال المهمة
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
toolkit.beep();
System.out.println ("النهاية: "+تاريخ جديد());
}
}

الفراغ العام الثابت الرئيسي (سلسلة args []) {
مؤقت جديد ();
}
}
< / pre> Output