說明:如果您有任何疑問或想咨詢其他業(yè)務請撥打電話 400 685 0732
全網(wǎng)監(jiān)測海量數(shù)據(jù)按需發(fā)布監(jiān)測預警
實時把握輿情動態(tài)精準追溯信息源頭
在學習java的過程當中,java定時器是我們必須要了解的,也是必須要掌握的一個知識點,那么java定時器是什么?在使用時需要注意什么呢?接下來我們就一起來好好的了解一下吧。
java定時器——java定時器是什么
timer功能在指定的時間間隔內反復觸發(fā)指定窗口的定時器事件。語法Timer(interval{,windowname})參數(shù)interval:指定兩次觸發(fā)Timer事件之間的時間間隔,有效值在0到65之間。本文文主要為大家詳細介紹了Java定時器Timer的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
定時計劃任務功能在Java中主要使用的就是Timer對象,它在內部使用多線程的方式進行處理,所以它和多線程技術還是有非常大的關聯(lián)的。在JDK中Timer類主要負責計劃任務的功能,也就是在指定的時間開始執(zhí)行某一個任務,但封裝任務的類卻是TimerTask類。
java定時器使用注意事項
1、創(chuàng)建一個Timer對象就是新啟動了一個線程,但是這個新啟動的線程,并不是守護線程,它一直在后臺運行,通過如下可以將新啟動的Timer線程設置為守護線程。
1privatestaticTimertimer=newTimer(true);
2、提前:當計劃時間早于當前時間,則任務立即被運行。
3、延遲:TimerTask是以隊列的方式一個一個被順序運行的,所以執(zhí)行的時間和你預期的時間可能不一致,因為前面的任務可能消耗的時間較長,則后面的任務運行的時間會被延遲。延遲的任務具體開始的時間,就是依據(jù)前面任務的”結束時間”
4、周期性運行:Timer.schedule(TimerTasktask,DatefirstTime,longperiod)從firstTime開始每隔period毫秒執(zhí)行一次任務:
5、schedule(TimerTasktask,longdelay)當前的時間為參考時間,在此時間基礎上延遲制定的毫秒數(shù)后執(zhí)行一次TimerTask任務。
6、schedule(TimerTasktask,longdelay,longperiod)當前的時間為參考時間,在此基礎上延遲制定的毫秒數(shù),再以某一間隔時間無限次數(shù)地執(zhí)行某一任務。
7、Timer的cancel()和TimerTask的cancel()的區(qū)別?
前面提到任務的執(zhí)行是以對列的方式一個個被順序執(zhí)行的,TimerTask.cancel()指的是把當前任務從任務對列里取消。Timer.cancel()值的是把當前任務隊列里的所有任務都取消。值得注意的是,Timer的cancel()有時并不一定會停止執(zhí)行計劃任務,而是正常執(zhí)行。這是因為Timer類中的cancel()方法有時并沒有爭搶到queue鎖,所以TimerTask類中的任務繼續(xù)正常執(zhí)行。
以上就是java定時器在使用過程當中需要注意什么的所有內容,在使用定時器時,有關編程是一定要了解的,如果大家還想了解更多與之有關的內容,歡迎關注我們文軍營銷的官網(wǎng)。
推薦閱讀
說明:如果您有任何疑問或想咨詢其他業(yè)務請撥打電話 400 685 0732