timer定時器

timer在線jdk講解

timer和quartz都可以實現定時任務。
timer的執行是單線程執行的,quartz執行可以是多線程實現。

首先了解Timer:
timer:有且僅有一個後臺線程對多個業務線程進行定時定頻率的調度。

timer的構建(timer是通過定時的條用timerTask來實現定時任務的調用):
在這裏插入圖片描述
timer可以理解爲某個後臺執行的線程,timerTask可以理解爲業務線程。

timer的內部構造:
在這裏插入圖片描述
timerTask的運用實例(繼承了TimerTask後去實現和堆內的run方法):
在這裏插入圖片描述
執行程序:
在這裏插入圖片描述

Timer的時間調度函數:
schedule的是四種用法。
第一:
在這裏插入圖片描述
意思就是超過timer線程一直處於等待狀態。
實例:
在這裏插入圖片描述
main:
在這裏插入圖片描述

第二種:
在這裏插入圖片描述

第三種:
在這裏插入圖片描述
注意的是這裏且僅執行一次。

第四種:
在這裏插入圖片描述在這裏插入圖片描述

scheduleAtFixedRate的兩種用法。
第一種:
在這裏插入圖片描述
在這裏插入圖片描述
執行:
在這裏插入圖片描述
第二種:
在這裏插入圖片描述
在這裏插入圖片描述
其他重要函數:
TimerTask的cancel(),scheduledExecutionTime()的用法和Timer的cancel()he purge()函數的用法。

首先:cancel()的作用是取消TimerTask裏的任務。
實例(答應五次就關閉定時任務的執行):
在這裏插入圖片描述

scheduledExecutionTime():返回此任務最近實際執行的已安排的時間。
實例:
在這裏插入圖片描述
就是返回最近執行的實際時間。

Timer下面的cancel()函數:終止此計時器,丟棄所有當前已安排的任務。

purge:從此計時器的任務隊列中移除所有已取消的任務,並返回取消任務對的個數。

schedule與scheduleAtFixedRate的區別:
在這裏插入圖片描述
第一種:
在這裏插入圖片描述
實例:
在這裏插入圖片描述

第二種:
在這裏插入圖片描述實例:
在這裏插入圖片描述
注意:延遲後爲了趕上本來的執行次數會在同一時間點多次執行。

第三種:
在這裏插入圖片描述
實例:
在這裏插入圖片描述
在這裏插入圖片描述
實例:
在這裏插入圖片描述

timer的缺陷:
在這裏插入圖片描述
在這裏插入圖片描述

第二種:
在這裏插入圖片描述
在這裏插入圖片描述