मुझे यहां पूछे गए समान प्रश्न मिले लेकिन मेरी संतुष्टि के जवाब नहीं थे। तो सवाल को फिर से दोहराते हुए-
मेरे पास एक कार्य है जिसे आवधिक आधार पर करने की आवश्यकता है (1 मिनट के अंतराल पर)। नींद के साथ अनंत लूप वाले एक नए धागे को बनाने के विरोध में ऐसा करने के लिए टिमर्टस्क और टाइमर का उपयोग करने का क्या फायदा है?
कोड स्निपेट टाइमटेस्क का उपयोग करते हुए-
TimerTask uploadCheckerTimerTask = new TimerTask(){
public void run() {
NewUploadServer.getInstance().checkAndUploadFiles();
}
};
Timer uploadCheckerTimer = new Timer(true);
uploadCheckerTimer.scheduleAtFixedRate(uploadCheckerTimerTask, 0, 60 * 1000);
थ्रेड और नींद का उपयोग करके कोड स्निपेट-
Thread t = new Thread(){
public void run() {
while(true) {
NewUploadServer.getInstance().checkAndUploadFiles();
Thread.sleep(60 * 1000);
}
}
};
t.start();
मुझे वास्तव में चिंता करने की ज़रूरत नहीं है अगर मुझे कुछ चक्रों की याद आती है यदि तर्क का निष्पादन अंतराल समय से अधिक होता है।
कृपया इस पर टिप्पणी करें ।।
अद्यतन:
हाल ही में मुझे टाइमर बनाम थ्रेड। स्लीप () का उपयोग करने के बीच एक और अंतर मिला। मान लीजिए कि वर्तमान प्रणाली का समय सुबह 11:00 बजे है। अगर हम किसी कारणवश सिस्टम टाइम को 10:00 AM तक रोलबैक करते हैं, तो द टाइमर 11:00 AM तक कार्य को अंजाम देगा, जबकि थ्रेड। स्लीप () विधि कार्य को बिना बाधा के निष्पादित करना जारी रखेगी। यह निर्णय लेने में एक प्रमुख निर्णय निर्माता हो सकता है कि इन दोनों के बीच क्या उपयोग किया जाए।