大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

java timer的用法,三步實現定時

更新時間:2020-05-14 15:41:42 來源:動力節點 瀏覽3003次

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

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

第二步:編寫一個類,該類實現ServletContextListener接口

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

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

監聽器添加方式:

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

舉例:

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

相關注意點分析:

1.任務調度要優先考慮實時保證

由于Java的天性,并且在開發JDK的過程中要考慮到不同平臺,而不同平臺的線程調度機制是不同的,因此各種平臺下JVM的線程調度機制也是不一致的。從而Timer不能保證任務在所指定的時間內執行。另外由于TimerTask是實現Runnable接口的,在TimerTask被放進線程隊列睡眠一段時間(wait)之后,當到了指定的該喚起該TimerTask時,由于執行的確切時機取決于JVM的調度策略和當前還有多少線程在等待CPU處理。因此就不能保證任務在所指定的時間內執行。通常在如下兩種情況下導致任務延遲執行:

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

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

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

(1)schedule()

用固定延遲調度。使用本方法時,在任務執行中的每一個延遲會傳播到后續的任務的執行。

(2)scheduleAsFixedRate()

用固定比率調度。使用本方法時,所有后續執行根據初始執行的時間進行調度,從而希望減小延遲。

具體使用哪一個方法取決于哪些參數對你的程序或系統更重要。

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

java timer的用法,三步實現定時

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 在线观看欧洲成人免费视频 | 免费国产97久久青草 | 国产精品videossex激情 | 日本不卡在线观看免费v | 亚洲欧洲日韩在线 | 一区二区三区日韩精品 | 国产日韩久久久久69影院 | 中文字幕综合网 | se色综合视频| 欧美色图一区二区 | 亚洲精品9999久久久久 | 欧美激情在线 | 亚洲精品乱码久久久久 | 激情五月综合网 | 92国产福利久久青青草原 | 色综合色狠狠天天综合色 | 四虎成人在线视频 | 亚洲国产欧美一区二区欧美 | 精品午夜寂寞影院在线观看 | 日韩一区二区三区视频在线观看 | 亚洲国产一区二区三区综合片 | 青青在线精品视频 | 日韩高清一区 | 久久精品欧美一区二区 | 久草在线久草在线 | 麻豆成人久久精品二区三区小说 | 国产福利小视频在线观看 | 亚洲三及片 | 中文字幕一二三区乱码老 | 久久精品国产亚洲 | 91长腿女神清纯大又嫩在线 | 国产精品伦理一二三区伦理 | 久热网站 | aaa级片 | 亚洲欧美精品中字久久99 | 免费深夜福利 | 成年女人aaaaa毛片 | 黄色成人在线播放 | 吃奶japanesevideo 处videossex第一次中 | 亚洲天堂福利视频 | 久久久久久国产视频 |