java定時(shí)任務(wù)Timer和TimerTask使用詳解
timer和timertask是jdk自帶的定時(shí)任務(wù)實(shí)現(xiàn),無(wú)需導(dǎo)入第三方j(luò)ar包來(lái)完成
1、指定多久之后執(zhí)行此任務(wù),注意:只會(huì)執(zhí)行一次
public class TimerTest { Timer timer; public TimerTest(int time){ timer = new Timer(); timer.schedule(new timerTaskTest(),time*1000);//timer.schedule(執(zhí)行的方法,延遲多久執(zhí)行(ms)) } public static void main(String[] args) { System.out.println("timer begin..."); new TimerTest(3); } class timerTaskTest extends TimerTask{ @Override public void run() { System.out.println("time's up!!"); } } }
2、在指定的時(shí)間執(zhí)行任務(wù)
public class TimerTest1 { Timer timer; public TimerTest1(){ Date time = getTime(); System.out.println("指定時(shí)間time="+time); timer = new Timer(); timer.schedule(new TimerTaskTest1(),time);//timer.schedule(執(zhí)行的方法,要執(zhí)行的時(shí)間) } public Date getTime(){//設(shè)置執(zhí)行時(shí)間 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR,5); calendar.set(Calendar.MINUTE,46); calendar.set(Calendar.SECOND,00); Date time = calendar.getTime(); return time; } public static void main(String[] args) { new TimerTest1(); } class TimerTaskTest1 extends TimerTask{ public void run() { System.out.println("指定時(shí)間執(zhí)行線程任務(wù)..."); } } }
3、在延遲指定時(shí)間后以指定的間隔時(shí)間循環(huán)執(zhí)行定時(shí)任務(wù)
public class TimerTest2 { Timer timer; public TimerTest2(){ timer = new Timer(); timer.schedule(new TimerTaskTest2(),1000,2000);//tiemr.schedule(執(zhí)行的方法,延遲時(shí)間,多久執(zhí)行一次) } class TimerTaskTest2 extends TimerTask{ @Override public void run() { System.out.println("本次任務(wù)執(zhí)行時(shí)間"+new Date()); } } public static void main(String[] args) { new TimerTest2(); } }
到這里定時(shí)任務(wù)實(shí)現(xiàn)類已經(jīng)完成,如果是web項(xiàng)目,則需要在web.xml中配置啟動(dòng)
<listener> <listener-class>com.sxl.ContextListener</listener-class> </listener>
配置完成即可。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot Swagger2 接口規(guī)范示例詳解
Swagger(在谷歌、IBM、微軟等公司的支持下)做了一個(gè)公共的文檔風(fēng)格來(lái)填補(bǔ)上述問(wèn)題,在本文中,我們將會(huì)學(xué)習(xí)怎么使用Swagger的 Swagger2注解去生成REST API文檔,感興趣的朋友一起看看吧2023-12-12SpringBoot如何讀取配置文件中的數(shù)據(jù)到map和list
這篇文章主要介紹了SpringBoot如何讀取配置文件中的數(shù)據(jù)到map和list,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02springboot 使用zookeeper實(shí)現(xiàn)分布式隊(duì)列的基本步驟
這篇文章主要介紹了springboot 使用zookeeper實(shí)現(xiàn)分布式隊(duì)列,通過(guò)ZooKeeper的協(xié)調(diào)和同步機(jī)制,多個(gè)應(yīng)用程序可以共享一個(gè)隊(duì)列,并按照先進(jìn)先出的順序處理隊(duì)列中的消息,需要的朋友可以參考下2023-08-08在Spring Boot應(yīng)用程序中使用Apache Kafka的方法步驟詳解
這篇文章主要介紹了在Spring Boot應(yīng)用程序中使用Apache Kafka的方法步驟詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11JAVA過(guò)濾器和攔截器有什么區(qū)別詳細(xì)講解
在JavaWeb開(kāi)發(fā)中,過(guò)濾器(Filter)和攔截器(Interceptor)是兩種重要的組件,主要用于攔截和處理請(qǐng)求,過(guò)濾器屬于JavaServlet規(guī)范,用于請(qǐng)求到達(dá)目標(biāo)資源之前或響應(yīng)返回客戶端之前的處理,需要的朋友可以參考下2024-10-10Java實(shí)現(xiàn)獲取圖片和視頻文件的Exif信息
這篇文章將重點(diǎn)為大家介紹一下如何使用Java編程語(yǔ)言結(jié)合metadata-extractor去自動(dòng)獲取全景圖片的Exif信息,獲取照片的拍攝坐標(biāo)信息,感興趣的可以了解一下2022-11-11springboot-dubbo cannot be cast to問(wèn)題及解決
這篇文章主要介紹了springboot-dubbo cannot be cast to問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04關(guān)于Java中的可見(jiàn)性和有序性問(wèn)題
這篇文章主要介紹了關(guān)于Java中的可見(jiàn)性和有序性問(wèn)題,Java在誕生之初就支持多線程,自然也有針對(duì)這三者的技術(shù)方案,今天就學(xué)習(xí)一下Java如何解決其中的可見(jiàn)性和有序性導(dǎo)致的問(wèn)題,需要的朋友可以參考下2023-08-08