যদি আপনি বিরতি দিতে চান তবে ব্যবহার করুন 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()
।