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

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

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

更新時(shí)間:2020-05-14 15:41:42 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2954次

第一步:編寫測(cè)試類,該類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)在時(shí)間是:"+sf.format(newDate()));
}
}

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

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

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

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

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

舉例:

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

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

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

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

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

(2)GC機(jī)制的影響導(dǎo)致延遲

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

(1)schedule()

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

(2)scheduleAsFixedRate()

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

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

2.每個(gè)Timer對(duì)象要在后臺(tái)啟動(dòng)一個(gè)線程。這種性質(zhì)在一些托管的環(huán)境下不推薦使用,比如在應(yīng)用服務(wù)器中。因?yàn)檫@些線程不在容器的控制范圍之內(nèi)了。

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

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“java timer的用法,三步實(shí)現(xiàn)定時(shí)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 性夜黄a爽爽免费视频国产 性夜黄 a 爽免费看 | 欧美精品三级在线 | 国产一国产一级新婚之夜 | 亚洲午夜18| 欧美黄色免费在线观看 | 一级理伦 | 夜晚福利网站 | 日韩欧美综合视频 | 亚洲国产成人久久一区www妖精 | 在线亚洲欧美性天天影院 | 天天操夜夜操免费视频 | 国产黄a三级三级三级 | 日本一区深夜影院深a | 又www又黄又爽啪啪网站 | 国产羞羞的视频在线观看免费 | 一级一级一片免费高清 | 欧美黄色一级大片 | 免费黄色片网站 | 国产伦精品一区二区三区免 | 国产资源在线观看 | 国产综合视频在线 | 永久免费av网站 | 国产亚洲欧美日本一二三本道 | 日韩免费视频一区二区 | 先锋资源av| 成人黄网18免费观看的网站 | 免费国产一级特黄久久 | 羞羞网站视频 | 国产免费播放一区二区 | 国产在线观看不卡免费高清 | 一级一级一级毛片 | 亚洲高清国产品国语在线观看 | 亚洲成熟中老妇女 | 被黄漫网站视频在线观看 | 日韩欧美精品综合久久 | 欧美一区二区视频高清转区 | 欧美福利网 | 日本三级2018亚洲视频 | 欧美成人中文字幕在线视频 | 国产亚洲精品自在久久77 | 日本人成大片在线 |