java定時(shí)任務(wù)Timer和TimerTask使用詳解
timer和timertask是jdk自帶的定時(shí)任務(wù)實(shí)現(xiàn),無需導(dǎo)入第三方j(luò)ar包來完成
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>
配置完成即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot Swagger2 接口規(guī)范示例詳解
Swagger(在谷歌、IBM、微軟等公司的支持下)做了一個(gè)公共的文檔風(fēng)格來填補(bǔ)上述問題,在本文中,我們將會(huì)學(xué)習(xí)怎么使用Swagger的 Swagger2注解去生成REST API文檔,感興趣的朋友一起看看吧2023-12-12
SpringBoot如何讀取配置文件中的數(shù)據(jù)到map和list
這篇文章主要介紹了SpringBoot如何讀取配置文件中的數(shù)據(jù)到map和list,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
springboot 使用zookeeper實(shí)現(xiàn)分布式隊(duì)列的基本步驟
這篇文章主要介紹了springboot 使用zookeeper實(shí)現(xiàn)分布式隊(duì)列,通過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-11
Java實(shí)現(xiàn)獲取圖片和視頻文件的Exif信息
這篇文章將重點(diǎn)為大家介紹一下如何使用Java編程語言結(jié)合metadata-extractor去自動(dòng)獲取全景圖片的Exif信息,獲取照片的拍攝坐標(biāo)信息,感興趣的可以了解一下2022-11-11
springboot-dubbo cannot be cast to問題及解決
這篇文章主要介紹了springboot-dubbo cannot be cast to問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04

