1. 程式人生 > >定時器執行任務

定時器執行任務

java定時器

現象: 瞭解java定時器:schedule方法和scheduleAtFixedRate方法 定時器

  • 區別一:
  • schedule方法,定時任務,按照程式碼實際執行任務的時間進行固定頻率的執行,不按照原來程式碼中設定的時間進行固定頻率執行(以上次任務結束的時間作為下次任務時間開始的起點間隔算)。
  • scheduleAtFixedRate方法,定時任務,按照程式碼中指定的時間進行固定頻率的執行,但是TimerTask中任務執行的時間可能會和固定頻率執行的重疊,需要考慮執行緒的同步。
  • 區別二:如果設定了任務的開始時間
  • 如果指定開始執行的時間在當前系統執行時間之前,兩個都會立即開始任務的執行
  • scheduleAtFixedRate會把已經過去的時間也作為週期執行,(會把過去的任務執行作為彌補)
  • 而schedule不會把過去的時間算上。而是重新開始用啟動的時間第一次執行任務

方法: 方法一:延遲執行 在這裡插入圖片描述

方法二:延遲執行同時每隔一段時間重複執行任務 在這裡插入圖片描述

方法三:scheduleAtFixedRate 設定延遲執行和重複執行 在這裡插入圖片描述

方法四:設定方法在指定的時間執行,同時設定時間間隔重複執行 在這裡插入圖片描述

方法五:使用scheduleAtFixedRate 在這裡插入圖片描述

比較方法四和方法五 ,前面表達的區別二顯而易見! scheduleAtFixedRate會把已經過去的時間也作為週期執行,