Belirli bir süre sonra "bir şey yapacak" bir geri sayım sayacı ayarlama satırları boyunca, bir şeyler yapmayı geciktirmek istiyorum.Bir görevi bir defa çalışacak şekilde nasıl zamanlarım?
Beklerken çalışmasını sağlamak için programımın kalanını istiyorum, bu yüzden benim bir dakikalık gecikme içeriyordu kendi Thread
yapma çalıştı: Bu çalıştı iken
public class Scratch {
private static boolean outOfTime = false;
public static void main(String[] args) {
Thread countdown = new Thread() {
@Override
public void run() {
try {
// wait a while
System.out.println("Starting one-minute countdown now...");
Thread.sleep(60 * 1000);
// do the thing
outOfTime = true;
System.out.println("Out of time!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
countdown.start();
while (!outOfTime) {
try {
Thread.sleep(1000);
System.out.println("do other stuff here");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
, daha-veya- daha az, bunu yapmanın daha iyi bir yolu olmalıydı.
Bazı arama yaptıktan sonra, ben bu gibi bir sürü soru buldum ama gerçekten ben yapmaya çalışıyorum hitap etmeyebilir:
- How do I schedule a task to run at periodic intervals?
- How i can run my TimerTask everyday 2 PM
- How to run certain task every day at a particular time using ScheduledExecutorService?
- Java execute task with a number of retries and a timeout
Bu karmaşaya ihtiyacım yok ted; Programın geri kalanı hala çalışmasına izin verirken belirli bir süre sonra tek bir şey yapmak istiyorum.
Tek seferlik bir görevi "bir şey yapmak" için zamanlamayı nasıl yapmalıyım?
. Benimki sadece bir kez kaçmak ve çıkmak istiyorum. – qualebs
@qualebs Bu örnekte, eylem yalnızca bir kez çalışacaktır. Zamanlama() 'yöntemine geçirilen süre, eylemin yürütülmesinden önceki gecikme olur. – azurefrog