उपयोग करें java.util.concurrent.TimeUnit
:
TimeUnit.SECONDS.sleep(1);
एक सेकंड के लिए सो जाओ या
TimeUnit.MINUTES.sleep(1);
एक मिनट के लिए सो जाओ।
जैसा कि यह एक लूप है, यह एक अंतर्निहित समस्या प्रस्तुत करता है - बहाव। हर बार जब आप कोड चलाते हैं और फिर सोते हैं तो आप दौड़ने से थोड़ा हटकर कहेंगे, हर सेकंड। यदि यह एक समस्या है तो उपयोग न करें sleep
।
इसके अलावा, sleep
बहुत लचीला नहीं है जब यह नियंत्रण में आता है।
किसी कार्य को हर सेकंड या एक सेकंड की देरी से चलाने के लिए, मैं दृढ़ता से एक [ ScheduledExecutorService
] [१] और या तो [ scheduleAtFixedRate
] [२] या [] की सिफारिश करूँगाscheduleWithFixedDelay
] [३] की ।
विधि को myTask
हर सेकंड (जावा 8) चलाने के लिए :
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);
}
private static void myTask() {
System.out.println("Running");
}