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