Java中Timer的schedule()方法參數(shù)詳解
timer.schedule(new MyTask(),long time1,long timer2);
今天算是徹底的搞懂了這個(gè)曾經(jīng)讓我為之頭疼的方法。下面我就重點(diǎn)介紹一下:
- 第一個(gè)參數(shù),是 TimerTask 類,在包:import Java.util.TimerTask .使用者要繼承該類,并實(shí)現(xiàn)public void run() 方法,因?yàn)?TimerTask 類 實(shí)現(xiàn)了 Runnable 接口。
- 第二個(gè)參數(shù)的意思是,當(dāng)你調(diào)用該方法后,該方法必然會(huì)調(diào)用 TimerTask 類 TimerTask 類 中的 run()方法,這個(gè)參數(shù)就是這兩者之間的差值,轉(zhuǎn)換成漢語的意思就是說,用戶調(diào)用 schedule() 方法后,要等待這么長的時(shí)間才可以第一次執(zhí)行run() 方法。
- 第三個(gè)參數(shù)的意思就是,第一次調(diào)用之后,從第二次開始每隔多長的時(shí)間調(diào)用一次 run() 方法。
附:
技術(shù)人員在實(shí)現(xiàn)內(nèi)部辦公系統(tǒng)與外部網(wǎng)站一體化的時(shí)候,最重要的步驟就是從OA系統(tǒng)讀取數(shù)據(jù),并且根據(jù)網(wǎng)站模板生成最終的靜態(tài)頁面。這里就需要一個(gè)定時(shí)任務(wù),循環(huán)的執(zhí)行。
技術(shù)人員在寫定時(shí)任務(wù)的時(shí)候,想當(dāng)然的以為Timer.schedule(TimerTask task, longdelay)
就是重復(fù)的執(zhí)行task。程序運(yùn)行后發(fā)現(xiàn)只運(yùn)行了一次,總覺得是task里的代碼有問題,花了很長時(shí)間調(diào)試代碼都沒有結(jié)果。
仔細(xì)研讀java api
,發(fā)現(xiàn):
schedule(TimerTask task, long delay)
的注釋:Schedules thespecified task for execution after the specifieddelay。大意是在延時(shí)delay毫秒后執(zhí)行task。并沒有提到重復(fù)執(zhí)行
schedule(TimerTask task, long delay, long period)
的注釋:Schedulesthe specified task for repeated fixed-delay execution, beginningafter the specified delay。大意是在延時(shí)delay毫秒后重復(fù)的執(zhí)行task,周期是period毫秒。
這樣問題就很明確schedule(TimerTask task, longdelay)
只執(zhí)行一次,schedule(TimerTask task, long delay, longperiod)
才是重復(fù)的執(zhí)行。關(guān)鍵的問題在于程序員誤以為schedule就是重復(fù)的執(zhí)行,而沒有仔細(xì)的研究API,一方面也是英文能力不夠,瀏覽API的過程中不能很快的理解到含義。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
詳解Java中的延時(shí)隊(duì)列 DelayQueue
這篇文章主要介紹了Java中延時(shí)隊(duì)列 DelayQueue的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-12-12Spring切面優(yōu)先級(jí)與基于xml的AOP實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Spring切面的優(yōu)先級(jí)與基于xml的AOP的詳細(xì)步驟,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11如何處理后臺(tái)向前臺(tái)傳遞的json數(shù)據(jù)
這篇文章主要介紹了如何處理后臺(tái)向前臺(tái)傳遞的json數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02tk.mybatis通用插件updateByPrimaryKeySelective無法自動(dòng)更新列的解決辦法
tk.mybatis是一個(gè)很好用的通用插件,本文主要介紹了tk.mybatis通用插件updateByPrimaryKeySelective無法自動(dòng)更新列的解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12