黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 java timer的用法,三步實現(xiàn)定時

java timer的用法,三步實現(xiàn)定時

更新時間:2020-05-14 15:41:42 來源:動力節(jié)點 瀏覽2910次

第一步:編寫測試類,該類extendsTimerTask,重新run()方法,run方法里面就是你要執(zhí)行的邏輯代碼,示例如下:

[java]viewplaincopyprint?
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.TimerTask;
publicclassMyTest1extendsTimerTask{
privateSimpleDateFormatsf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");
@Override
publicvoidrun(){
System.out.println("現(xiàn)在時間是:"+sf.format(newDate()));
}
}

第二步:編寫一個類,該類實現(xiàn)ServletContextListener接口

[java]viewplaincopyprint?
importjavax.servlet.ServletContextEvent;
importjavax.servlet.ServletContextListener;
publicclassTimerTaskManagerimplementsServletContextListener{
privateTimertimer;
@Override
publicvoidcontextInitialized(ServletContextEventsce){
System.out.println("程序定時執(zhí)行任務.....................................");
MyTest1t=newMyTest1();
timer=newTimer("開始執(zhí)行任務",true);
/*執(zhí)行MyTest1中的run方法,t代表TimerTask的子類,0代表延遲0毫秒執(zhí)行run方*法,1000表示每隔一秒執(zhí)行一次run方法,后面兩個參數(shù)可根據(jù)自己的需求而定義
*/
timer.schedule(t,0,1000);
}
@Override
publicvoidcontextDestroyed(ServletContextEventsce){
System.out.println("程序定時執(zhí)行任務結(jié)束.....................................");
timer.cancel();
}
}

第三步:在web.xml中添加如下代碼里面填寫TimerTaskManager的路徑,程序在web容器啟動后會初始化加載TimerTaskManager的contextInitialized方法。

監(jiān)聽器添加方式:

加listener標簽,listener里面加listener-class標簽,listener-class標簽里面內(nèi)容為TimerTaskManager的路徑,如:com.TimerTaskManager.

舉例:

[html]viewplaincopyprint?
<listener>
<listener-class>weiming.lmapp.timer.SysContextListener</listener-class>
</listener>

相關(guān)注意點分析:

1.任務調(diào)度要優(yōu)先考慮實時保證

由于Java的天性,并且在開發(fā)JDK的過程中要考慮到不同平臺,而不同平臺的線程調(diào)度機制是不同的,因此各種平臺下JVM的線程調(diào)度機制也是不一致的。從而Timer不能保證任務在所指定的時間內(nèi)執(zhí)行。另外由于TimerTask是實現(xiàn)Runnable接口的,在TimerTask被放進線程隊列睡眠一段時間(wait)之后,當?shù)搅酥付ǖ脑搯酒鹪揟imerTask時,由于執(zhí)行的確切時機取決于JVM的調(diào)度策略和當前還有多少線程在等待CPU處理。因此就不能保證任務在所指定的時間內(nèi)執(zhí)行。通常在如下兩種情況下導致任務延遲執(zhí)行:

(1)有大量線程在等待執(zhí)行

(2)GC機制的影響導致延遲

這也是為什么在TimerAPI中存在兩組調(diào)度方法的原因。即:

(1)schedule()

用固定延遲調(diào)度。使用本方法時,在任務執(zhí)行中的每一個延遲會傳播到后續(xù)的任務的執(zhí)行。

(2)scheduleAsFixedRate()

用固定比率調(diào)度。使用本方法時,所有后續(xù)執(zhí)行根據(jù)初始執(zhí)行的時間進行調(diào)度,從而希望減小延遲。

具體使用哪一個方法取決于哪些參數(shù)對你的程序或系統(tǒng)更重要。

2.每個Timer對象要在后臺啟動一個線程。這種性質(zhì)在一些托管的環(huán)境下不推薦使用,比如在應用服務器中。因為這些線程不在容器的控制范圍之內(nèi)了。

java timer的用法,三步實現(xiàn)定時

以上就是動力節(jié)點java培訓機構(gòu)的小編針對“java timer的用法,三步實現(xiàn)定時”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 免费国产黄色片 | 无遮挡动漫黄漫网站在线观看 | 欧美一区二区在线观看视频 | 1024cc香蕉在线观看免费 | 国产一级爱c片免费观看 | 你懂的国产高清在线播放视频 | 99爱视频99爱在线观看免费 | 性欧美videos粗暴 | 男女午夜影院 | 日韩在线二区 | 视频二区欧美 | 视频一区在线观看 | 亚洲国产一区二区三区最新 | 又黄又爽一线毛片免费观看 | 手机看片高清日韩精品 | 国产精品1区2区3区在线播放 | 37pao成人国产永久免费视频 | 一区二区高清在线观看 | 免费观看成人羞羞视频网站观看 | 中日韩视频在线看免费观看 | 亚洲精国产一区二区三区 | 国产日韩欧美亚洲综合首页 | 欧美激情精品久久久久久不卡 | 国产一区二区三区视频 | 午夜看片未满十八勿进 | 日韩看片网站 | 国产麻豆va精品视频 | 成人欧美在线观看 | 亚洲精品午夜级久久久久 | 欧美精品在线观看 | 国产一区二区精品在线观看 | 久久天天躁夜夜躁狠狠躁2020 | 成人免费观看网欧美片 | 韩国三级伦理片床在线播放 | 精品欧美成人高清视频在线观看 | 日韩欧美亚洲一区精选 | a级毛片毛片免费观看永久 a级毛片黄色 | 日韩毛片一级 | 欧美激情亚洲精品日韩1区2区 | hdxxx色视频 hd欧美xxx欧美极品hd | 亚洲午夜视频在线观看 |