যদি আপনি বিরতি দিতে চান তবে ব্যবহার করুন 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");
}
এবং জাভা 7:
public static void main(String[] args) {
final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
myTask();
}
}, 0, 1, TimeUnit.SECONDS);
}
private static void myTask() {
System.out.println("Running");
}
Thread.Sleep()।