定時器執行任務
阿新 • • 發佈:2018-12-17
java定時器
現象: 瞭解java定時器:schedule方法和scheduleAtFixedRate方法 定時器
- 區別一:
- schedule方法,定時任務,按照程式碼實際執行任務的時間進行固定頻率的執行,不按照原來程式碼中設定的時間進行固定頻率執行(以上次任務結束的時間作為下次任務時間開始的起點間隔算)。
- scheduleAtFixedRate方法,定時任務,按照程式碼中指定的時間進行固定頻率的執行,但是TimerTask中任務執行的時間可能會和固定頻率執行的重疊,需要考慮執行緒的同步。
- 區別二:如果設定了任務的開始時間
- 如果指定開始執行的時間在當前系統執行時間之前,兩個都會立即開始任務的執行
- scheduleAtFixedRate會把已經過去的時間也作為週期執行,(會把過去的任務執行作為彌補)
- 而schedule不會把過去的時間算上。而是重新開始用啟動的時間第一次執行任務
方法: 方法一:延遲執行
方法二:延遲執行同時每隔一段時間重複執行任務
方法三:scheduleAtFixedRate 設定延遲執行和重複執行
方法四:設定方法在指定的時間執行,同時設定時間間隔重複執行
方法五:使用scheduleAtFixedRate
比較方法四和方法五 ,前面表達的區別二顯而易見! scheduleAtFixedRate會把已經過去的時間也作為週期執行,