ব্যবহার java.util.concurrent.TimeUnit
:
TimeUnit.SECONDS.sleep(1);
এক সেকেন্ডের জন্য ঘুমাও বা
TimeUnit.MINUTES.sleep(1);
এক মিনিট ঘুমোও।
যেহেতু এটি একটি লুপ, এটি একটি অন্তর্নিহিত সমস্যা উপস্থাপন করে - প্রবাহিত। যতবার আপনি কোড চালান এবং তারপরে ঘুমান আপনি প্রতি সেকেন্ডে চলমান থেকে কিছুটা সরে যাবেন, বলুন। এটি যদি কোনও সমস্যা হয় তবে ব্যবহার করবেন না sleep
।
এছাড়াও, sleep
এটি নিয়ন্ত্রণের ক্ষেত্রে খুব নমনীয় নয়।
প্রতি সেকেন্ডে কোনও কাজ চালানোর জন্য বা এক সেকেন্ড দেরিতে আমি জোরালোভাবে একটি [ ScheduledExecutorService
] [1] এবং হয় [ scheduleAtFixedRate
] [2] বা [scheduleWithFixedDelay
] [3] এর সুপারিশ করব।
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");
}