java线程睡眠一分钟_Java中的TimerTimerTask和线程睡眠
我發(fā)現(xiàn)類似的問題在這里問,但沒有回答我的滿意。所以再次重申這個問題 –
我有一個需要定期完成的任務(wù)(比如說1分鐘間隔)。使用Timertask&計時器做這個,而不是創(chuàng)建一個新的線程,有一個無限循環(huán)睡眠?
代碼片段使用timertask-
TimerTask uploadCheckerTimerTask = new TimerTask(){
public void run() {
NewUploadServer.getInstance().checkAndUploadFiles();
}
};
Timer uploadCheckerTimer = new Timer(true);
uploadCheckerTimer.scheduleAtFixedRate(uploadCheckerTimerTask, 0, 60 * 1000);
代碼片段使用Thread和sleep-
Thread t = new Thread(){
public void run() {
while(true) {
NewUploadServer.getInstance().checkAndUploadFiles();
Thread.sleep(60 * 1000);
}
}
};
t.start();
我真的不必擔(dān)心,如果我錯過某些周期,如果邏輯的執(zhí)行超過間隔時間。
請評論這個..
謝謝,
-Keshav
更新:
最近我發(fā)現(xiàn)使用Timer和Thread.sleep()之間的另一個區(qū)別。假設(shè)當(dāng)前系統(tǒng)時間為11:00 AM。如果我們由于某種原因?qū)⑾到y(tǒng)時間回滾到10:00 AM,定時器將停止執(zhí)行任務(wù),直到它達到11:00 AM,而Thread.sleep()方法將繼續(xù)執(zhí)行任務(wù)而沒有障礙。這可以是決定在這兩者之間使用什么的主要決策者。
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的java线程睡眠一分钟_Java中的TimerTimerTask和线程睡眠的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 的select语句_MYSQ
- 下一篇: java美元兑换,(Java实现) 美元