timer中schedule和scheduleAtFixedRate的區別

兩種情況看區別:
1、首次計劃執行的時間早於當前時間
2、任務執行所需時間超出任務的時間間隔

對於第一種情況:
schedule方法會在當前實際時間執行第一次,隨後的執行時間按照上一次實際執行完成的時間點進行計算。
而scheduleAtFixedRate方法會"fixed-rate";如果第一次執行時間被delay了,隨後的執行時間按照上一次開始的時間點進行計算,並且爲了趕上進度會多次執行任務,因此TimerTask中的執行體需要考慮同步。

對於第二種情況:
schedule方法下一次執行時間相對於上一次實際執行完成的時間點,因此執行時間會不斷延後。
scheduleAtFixedRate方法下一次執行時間相對於上一次開始的時間點,因此執行時間一般不會延後,因此存在併發性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章