java中的計時器
在我們日常生活中,我們常常會遇到有關計時器的事情。例如京東商城會在某年某月某日某時某分某秒進行特價活動,那麼當時間到達這個時間點上的時候該事件就會觸發。
總所周知,JAVA中給我們提供了很多類庫,然而計時器的問題我們簡單的就會用到Timer類與TimerTask類。
Timer是一種定時器工具,用來在一個後臺執行緒計劃執行指定任務。它可以計劃執行一個任務一次或反覆多次。
TimerTask一個抽象類,它的子類代表一個可以被Timer計劃的任務。
首先我們要說JAVA中計時器的運作過程,首先我們會建立一個類來繼承TimerTask類,繼而實現TimerTask中的run方法。
在此處我們新建了一個haoshibu類(本人比較隨意,因為我認為程式可以反射出生活中的各種各樣的事務,隨心走就好),其中重寫了run方法,其中我們用到了SimpleDateFormat來規範化時間的顯示格式,具體的SimpleDateFormat我們會在相關的具體章節中講到。在此方法中我們輸出了三次當前時間,calcel函式用來終止此任務。那麼我們又是怎麼用Timer將此TimerTask實現類中的執行起來從而實現定時器的特性呢。
在此處我們首先定義了一個具體的時間點,long ll=date.parse("8/15/2017 11:00:00");Date date1=new Date(ll);然後用Timer物件的schedule方法將haoshi(也就是實現了TimerTask類的物件),具體的時間點,一秒延遲(也就是1000L)封裝起來。具體實現的結果就是,由當前程式啟動的時間點起程式執行,但是不會有反應,耐心等待就好,等著到達我們設定好的時間點的時候程式就會呼叫haoshi中的run方法執行3次輸出時間的語句,每句間隔一秒鐘,三次以後結束,這樣就達到了我們的目的。上方的設定時間點的相關詳情可在其他章節中解釋。
由於我又重新設定了時間點"8/17/2017 17:57:00"所以結果如上方所示。這只是簡單的一些操作,具體的就是教大家怎麼來完成這樣的小功能,除了當前的schedule方法還有很多其他的過載方法,大家感興趣可以自己嘗試。