Java中Timer的schedule()方法參數(shù)詳解
timer.schedule(new MyTask(),long time1,long timer2);
今天算是徹底的搞懂了這個(gè)曾經(jīng)讓我為之頭疼的方法。下面我就重點(diǎn)介紹一下:
- 第一個(gè)參數(shù),是 TimerTask 類(lèi),在包:import Java.util.TimerTask .使用者要繼承該類(lèi),并實(shí)現(xiàn)public void run() 方法,因?yàn)?TimerTask 類(lèi) 實(shí)現(xiàn)了 Runnable 接口。
- 第二個(gè)參數(shù)的意思是,當(dāng)你調(diào)用該方法后,該方法必然會(huì)調(diào)用 TimerTask 類(lèi) TimerTask 類(lèi) 中的 run()方法,這個(gè)參數(shù)就是這兩者之間的差值,轉(zhuǎn)換成漢語(yǔ)的意思就是說(shuō),用戶調(diào)用 schedule() 方法后,要等待這么長(zhǎng)的時(shí)間才可以第一次執(zhí)行run() 方法。
- 第三個(gè)參數(shù)的意思就是,第一次調(diào)用之后,從第二次開(kāi)始每隔多長(zhǎng)的時(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)頁(yè)面。這里就需要一個(gè)定時(shí)任務(wù),循環(huán)的執(zhí)行。
技術(shù)人員在寫(xiě)定時(shí)任務(wù)的時(shí)候,想當(dāng)然的以為Timer.schedule(TimerTask task, longdelay)就是重復(fù)的執(zhí)行task。程序運(yùn)行后發(fā)現(xiàn)只運(yùn)行了一次,總覺(jué)得是task里的代碼有問(wèn)題,花了很長(zhǎng)時(shí)間調(diào)試代碼都沒(méi)有結(jié)果。
仔細(xì)研讀java api,發(fā)現(xiàn):
schedule(TimerTask task, long delay)的注釋?zhuān)篠chedules thespecified task for execution after the specifieddelay。大意是在延時(shí)delay毫秒后執(zhí)行task。并沒(méi)有提到重復(fù)執(zhí)行
schedule(TimerTask task, long delay, long period)的注釋?zhuān)篠chedulesthe specified task for repeated fixed-delay execution, beginningafter the specified delay。大意是在延時(shí)delay毫秒后重復(fù)的執(zhí)行task,周期是period毫秒。
這樣問(wèn)題就很明確schedule(TimerTask task, longdelay)只執(zhí)行一次,schedule(TimerTask task, long delay, longperiod)才是重復(fù)的執(zhí)行。關(guān)鍵的問(wèn)題在于程序員誤以為schedule就是重復(fù)的執(zhí)行,而沒(méi)有仔細(xì)的研究API,一方面也是英文能力不夠,瀏覽API的過(guò)程中不能很快的理解到含義。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
通過(guò)jenkins發(fā)布java項(xiàng)目到目標(biāo)主機(jī)上的詳細(xì)步驟
這篇文章主要介紹了通過(guò)jenkins發(fā)布java項(xiàng)目到目標(biāo)主機(jī)上的詳細(xì)步驟,發(fā)布java項(xiàng)目的步驟很簡(jiǎn)單,通過(guò)拉取代碼并打包,備份目標(biāo)服務(wù)器上已有的要發(fā)布項(xiàng)目,具體內(nèi)容詳情跟隨小編一起看看吧2021-10-10
springboot實(shí)現(xiàn)https雙向傳輸協(xié)議的示例代碼
本文主要介紹了springboot實(shí)現(xiàn)https雙向傳輸協(xié)議的示例代碼,包含配置證書(shū)和私鑰路徑、調(diào)用請(qǐng)求方法等步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
Java堆&優(yōu)先級(jí)隊(duì)列示例講解(上)
這篇文章主要通過(guò)示例詳細(xì)為大家介紹Java中的堆以及優(yōu)先級(jí)隊(duì)列,文中的示例代碼講解詳細(xì),對(duì)我們了解java有一定幫助,需要的可以參考一下2022-03-03
新手了解java 數(shù)組基礎(chǔ)知識(shí)
這篇文章主要介紹了Java 數(shù)組分析及簡(jiǎn)單實(shí)例的相關(guān)資料,在Java中它就是對(duì)象,一個(gè)比較特殊的對(duì)象,需要的朋友可以參考下,希望可以對(duì)你有所幫助2021-07-07
Springboot 整合 Java DL4J 打造文本摘要生成系統(tǒng)
本文介紹了如何使用SpringBoot整合JavaDeeplearning4j構(gòu)建文本摘要生成系統(tǒng),該系統(tǒng)能夠自動(dòng)從長(zhǎng)篇文本中提取關(guān)鍵信息,生成簡(jiǎn)潔的摘要,幫助用戶快速了解文本的主要內(nèi)容,技術(shù)實(shí)現(xiàn)包括使用LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行模型構(gòu)建和訓(xùn)練,并通過(guò)SpringBoot集成RESTfulAPI接口2024-11-11
SpringBoot使用Minio進(jìn)行文件存儲(chǔ)的實(shí)現(xiàn)
本文主要介紹了SpringBoot使用Minio進(jìn)行文件存儲(chǔ)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
關(guān)于Spring?Validation數(shù)據(jù)校檢的使用流程分析
在實(shí)際項(xiàng)目中,對(duì)客戶端傳遞到服務(wù)端的參數(shù)進(jìn)行校驗(yàn)至關(guān)重要,SpringValidation提供了一種便捷的方式來(lái)實(shí)現(xiàn)這一需求,通過(guò)在POJO類(lèi)的屬性上添加檢查注解,本文給大家介紹Spring?Validation數(shù)據(jù)校檢的使用流程,感興趣的朋友一起看看吧2024-11-11

