timer
timer主要用於執行一次性任務或者按照某個時間間隔迴圈執行某個任務,但對於迴圈執行來說,又分為兩種情況。第一種是fixed-period execution,呼叫schedule(timertask,delay,period)方法即可,這種迴圈執行任務的特點是,下一次執行的開始時間是從上一次執行結束的時間點經過period秒之後。如下圖
其中period就是我們在schedule方法中給定的時間間隔,task指的是任務執行所需時間,對於每次任務執行來說,有可能這個時間間隔不等。對於fixed-period execution型別的任務執行而言,上乙個任務結束之後,第二個任務才會被執行。
timer的第二種迴圈執行時fixed-rate execution,呼叫scheduleatfixedrate(task, delay, period)方法執行,這種方法的執行特點是下一次開始執行的時間是從上次任務開始時進行計算。如下圖
從圖中可以看出這兩種執行方式的區別,對於fixed-rate execution執行方式而言,若是period < task,那麼就會出現執行緒的排隊現象,造成延遲。
Android 執行緒和Timer的銷毀
在android開發中,經常會用到執行緒和timer,如果沒有主動關閉它們,當程式結束時,執行緒並沒有被銷毀,而是一直在後台執行著,當我們重新啟動應用時,又會重新啟動乙個執行緒,周而復始,你啟動應用次數越多,開啟的執行緒數就越多,你的機器就會變得越慢。還會導致意思不到的錯誤。1 執行緒的銷毀 han...
Android中Timer定時器的使用
android中好幾種定時的機制,其中timer定時器經常被用到,其中有很多值得注意的地方,timer定時器主要用來定時一段時間之後來執行某種任務 timer timer new timer timertask task new timertask timer.schedule task,5000 ...
jdk中的Timer類理解和學習
定時任務中只有乙個執行緒和乙個任務佇列 該佇列是乙個優先順序佇列,基於最小堆實現,時間距現在最近的任務排在開頭 任務的執行是根據當前時間進行判斷是否執行,如果任務的執行時間大於當前時間就在佇列上等待,否則更新任務的下次時間給任務,然後進行任務的執行 只要執行緒啟動後,就會在乙個while迴圈中不斷的...