更新時(shí)間:2020-05-15 15:39:53 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3152次
一、概述
定時(shí)計(jì)劃任務(wù)功能在Java中主要使用的就是Timer對(duì)象,它在內(nèi)部使用多線程的方式進(jìn)行處理,所以它和多線程技術(shù)還是有非常大的關(guān)聯(lián)的。在JDK中Timer類(lèi)主要負(fù)責(zé)計(jì)劃任務(wù)的功能,也就是在指定的時(shí)間開(kāi)始執(zhí)行某一個(gè)任務(wù),但封裝任務(wù)的類(lèi)卻是TimerTask類(lèi)。
二、應(yīng)用場(chǎng)景
我們使用timer的時(shí)候,一般有4種情況:
1.指定時(shí)間執(zhí)行;
2.指定時(shí)間執(zhí)行后間隔指定時(shí)間重復(fù)執(zhí)行;
3.啟動(dòng)任務(wù)之后多久執(zhí)行;
4.啟動(dòng)任務(wù)后多久執(zhí)行,執(zhí)行之后指定間隔多久重復(fù)執(zhí)行
三、使用方法
1.首先要通過(guò)繼承TimerTask類(lèi)并實(shí)現(xiàn)run()方法來(lái)自定義要執(zhí)行的任務(wù)(當(dāng)然也可以寫(xiě)成匿名內(nèi)部類(lèi)),
2.需要?jiǎng)?chuàng)建一個(gè)定時(shí)器(Timer類(lèi)對(duì)象),并通過(guò)Timer.schedule(TimerTasktask,Datetime)方法執(zhí)行時(shí)間運(yùn)行任務(wù)
具體代碼如下:
這里的schedule方法有4個(gè),分別對(duì)應(yīng)上面說(shuō)的四種情況:
四.啟動(dòng)方法
1.在jar工程下啟動(dòng)
把jar工程打成jar包,通過(guò)java-jartimer.jar運(yùn)行
2.這web工程下啟動(dòng)
spring中我們可以通過(guò)實(shí)現(xiàn)接口ApplicationListener,并重寫(xiě)publicvoidonApplicationEvent(ApplicationEventevent){}可以在容器初始話的時(shí)候執(zhí)行這個(gè)方法
下面展示下web工程下每天00:00執(zhí)行任務(wù)的代碼:
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java timer的使用和啟動(dòng)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743