Burada sorulan benzer soruları buldum ama memnuniyetime cevap vermedi. Öyleyse soruyu yeniden ifade etmek-
Periyodik olarak (1 dakikalık aralıklarla) yapılması gereken bir görevim var. Uyku ile sonsuz döngüye sahip yeni bir iş parçacığı oluşturmanın aksine bunu yapmak için Timertask & Timer kullanmanın avantajı nedir?
Timertask kullanarak kod parçacığı-
TimerTask uploadCheckerTimerTask = new TimerTask(){
public void run() {
NewUploadServer.getInstance().checkAndUploadFiles();
}
};
Timer uploadCheckerTimer = new Timer(true);
uploadCheckerTimer.scheduleAtFixedRate(uploadCheckerTimerTask, 0, 60 * 1000);
İş Parçacığı ve uyku kullanarak kod parçacığı
Thread t = new Thread(){
public void run() {
while(true) {
NewUploadServer.getInstance().checkAndUploadFiles();
Thread.sleep(60 * 1000);
}
}
};
t.start();
Mantığın yürütülmesi aralık süresinden daha uzun sürerse, belirli döngüleri kaçırırsam gerçekten endişelenmeme gerek yok.
Lütfen buna yorum yapın ..
Güncelleme:
Son zamanlarda Timer ile Thread.sleep () arasında başka bir fark buldum. Mevcut sistem saatinin 11:00 AM olduğunu varsayalım. Herhangi bir nedenle sistem saatini 10: 00'a geri alırsak, Timer görevi 11: 00'a ulaşana kadar DURDURACAK, oysa Thread.sleep () yöntemi engel olmadan görevi yürütmeye devam edecektir. Bu, bu ikisi arasında ne kullanılacağına karar verirken önemli bir karar verici olabilir.