1定時器的作用
在實際的開發中,如果專案中需要定時執行或需要重複執行一定的工作,定時器顯現的尤為重要。
當然如果我們不了解計時器就會用執行緒去實現,例如:
package org.lzstone.action
public class FinanceAction extends Thread{
while(true){
Thread.sleep((int)(Math.random()*1000));
date = new Date();
catch(Exception e){
e.printStackTrace();
}
}
}
自己實作計時器的工作很複雜,如果實作不好佔用記憶體過多,系統就此Over,所以處理定時執行或重複執行的任務,定時器是很好的選擇
2.java中常見的定時器
1)借助Java.util.Timer來實現
2)OpenSymphony社群提供的Quartz來實現
3.介紹Timer
利用Timer開發定時任務是主要分為兩個步驟:
1)創建定時任務類別
範例程式碼:
package org.lzstone.action
import java.util.TimeTask
public class LzstoneTimeTask extends TimeTask{
}
}
2)運行定時任務,執行定時任務分為兩種方式:
2.1)程式直接啟動
範例程式碼:
package org.lzstone.action
public class LzstoneMain{
//執行定時器的任務
//建立實例
Timer timer = new Timer();
0- 執行任務前的延遲時間,單位為毫秒。
1*1000- 執行各後續任務之間的時間間隔,單位是毫秒。
timer.schedule(new LzstoneTimeTask(),0,1*1000);
}
}
2.2)web監聽方式
範例程式碼
{
private Timer timer = null;
//初始化監聽器,建立實例,執行任務
public void contextInitialized(ServletContextEvent event){🠜 timer.schedule(new LzstoneTimeTask(),0,1*1000);
}
//銷毀監聽器,停止執行任務
public void contextDestroyed(ServletContextEvent event){
的任務是此計時器所執行的最後一個任務。
timer.cancel();
}
}
web.xmloo
4. 介紹Quartz
Quartz是OpenSymphony開源組織在Job scheduling領域又一個開源項目,可以用來創建簡單或複雜的定時任務,利用Quartz開發定時任務的步驟與Timer類
似。
利用Quartz開發定時任務是主要分為兩個步驟:
1)建立定時任務類別
範例程式碼:
package org.lzstone.action
public class LzstoneTimeTask implements Job{
{
//所執行的計時器任務
}
}
2)執行定時任務,執行定時任務分為兩種方式:
2.1)程式直接啟動,建立任務調度器及設定對應的任務計畫
範例程式碼:
package org.lzstone.action
public class LzstoneMain{ priv static Scheduler sched;
public static void run() throws Exception{
Detail = new JobDetail("lzstoneJob",sched.DEFAULT_GROUP,LzstoneTimeTask.class);
//目標建立任務計畫
CronTrigger trigger = new CronTrigger("lzstoneTrigger","lzstone","0 0 12 * * ?");
sched = new org.quartz.impl. StdSchedulerFactory().getScheduler();
sched.scheduleJob(jobDetail,trigger);
//停止
public static void stop() throws Exception{
}
//執行
public class Main{
.............
public void run(){
........ ....
}
2.2)web監聽方式
範例程式碼:
package org.lzstone.action
public class LzstoneMainListener implements ServletContextListener{
public void contextInitialized(ServletContextEvent event){
LzstoneMain.run();
public void contextDestroyed(ServletContextEvent event){
LzstoneMain.stop();
xml設定
org.lzstone.action.LzstoneMainListener
Quartz方式實作定時器,方便,清晰指定啟動時間,定時參數比較靈活,容易實作比較複雜的定時任務,不足之處是需要實現特定接口,加載其框架
兩種方式各有優缺點,在特定場合可以根據其特點選擇使用。
6.Spring定時任務
Spring定時任務對Timer與Quartz都提供了支持,並且實現步驟基本上一樣
首先配置Spring對Timer的支持
1.1 創建定時任務類
package org.lzstone.action
import java. .TimeTask
public class LzstoneTimeTask extends TimeTask{
public void run(){
,配置任務計劃與任務調度器
在專案的WEB-INF下面建立TimerConfig.xml檔案(一般稱為applicationContext.xml)
property>
2.3 web專案中的啟動設定
org.springframework.web .context.ContextLoaderListener
器的配置相關文章請關注PHP中文網!

JVM'SperformanceIsCompetitiveWithOtherRuntimes,operingabalanceOfspeed,安全性和生產性。 1)JVMUSESJITCOMPILATIONFORDYNAMICOPTIMIZAIZATIONS.2)c提供NativePernativePerformanceButlanceButlactsjvm'ssafetyFeatures.3)

JavaachievesPlatFormIndependencEthroughTheJavavIrtualMachine(JVM),允許CodeTorunonAnyPlatFormWithAjvm.1)codeisscompiledIntobytecode,notmachine-specificodificcode.2)bytecodeisisteredbytheybytheybytheybythejvm,enablingcross-platerssectectectectectross-eenablingcrossectectectectectection.2)

TheJVMisanabstractcomputingmachinecrucialforrunningJavaprogramsduetoitsplatform-independentarchitecture.Itincludes:1)ClassLoaderforloadingclasses,2)RuntimeDataAreafordatastorage,3)ExecutionEnginewithInterpreter,JITCompiler,andGarbageCollectorforbytec

JVMhasacloserelationshipwiththeOSasittranslatesJavabytecodeintomachine-specificinstructions,managesmemory,andhandlesgarbagecollection.ThisrelationshipallowsJavatorunonvariousOSenvironments,butitalsopresentschallengeslikedifferentJVMbehaviorsandOS-spe

Java實現“一次編寫,到處運行”通過編譯成字節碼並在Java虛擬機(JVM)上運行。 1)編寫Java代碼並編譯成字節碼。 2)字節碼在任何安裝了JVM的平台上運行。 3)使用Java原生接口(JNI)處理平台特定功能。儘管存在挑戰,如JVM一致性和平台特定庫的使用,但WORA大大提高了開發效率和部署靈活性。

JavaachievesPlatFormIndependencethroughTheJavavIrtualMachine(JVM),允許Codetorunondifferentoperatingsystemsswithoutmodification.thejvmcompilesjavacodeintoplatform-interploplatform-interpectentbybyteentbytybyteentbybytecode,whatittheninternterninterpretsandectectececutesoneonthepecificos,atrafficteyos,Afferctinginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginging

JavaispoperfulduetoitsplatFormitiondence,對象與偏見,RichstandardLibrary,PerformanceCapabilities和StrongsecurityFeatures.1)Platform-dimplighandependectionceallowsenceallowsenceallowsenceallowsencationSapplicationStornanyDevicesupportingJava.2)

Java的頂級功能包括:1)面向對象編程,支持多態性,提升代碼的靈活性和可維護性;2)異常處理機制,通過try-catch-finally塊提高代碼的魯棒性;3)垃圾回收,簡化內存管理;4)泛型,增強類型安全性;5)ambda表達式和函數式編程,使代碼更簡潔和表達性強;6)豐富的標準庫,提供優化過的數據結構和算法。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。