日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

使用Timer执行定时任务

發布時間:2023/12/4 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 使用Timer执行定时任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Timer概述

在Java開發中,會碰到一些需要定時或者延時執行某些任務的需求,這時,我們可以使用Java中的Timer類實現。

二、Timer介紹

Timer是一個定時器類,通過該類可以為指定的定時任務進行配置,所在jar包路徑:java.util.TimerTimer定時器實例有多種構造方法:Timer()// 創建一個新計時器Timer(boolean isDaemon)//創建一個新計時器,可以指定其相關的線程作為守護程序運行Timer(String name)//創建一個新計時器,其相關的線程具有指定的名稱Timer(String name,boolean isDaemon)//創建一個新計時器,其相關的線程具有指定的名稱,并且可以指定作為守護程序運行TimerTask類是一個定時任務類,該類實現了Runnable接口,而且是一個抽象類,所在jar包路徑:java.util.TimerTask// 可以通過繼承該類,來實現自己的定時任務。publicabstractclassTimerTaskimplementsRunnable

三、Timer常用方法

在特定時間執行任務,只執行一次
publicvoidschedule(TimerTasktask,Datetime)
在特定時間之后執行任務,只執行一次
publicvoidschedule(TimerTasktask,longdelay)
指定第一次執行的時間,然后按照間隔時間,重復執行
publicvoidschedule(TimerTasktask,DatefirstTime,longperiod)
在特定延遲之后第一次執行,然后按照間隔時間,重復執行

publicvoid schedule(TimerTask task,long delay,long period)/*參數說明
 delay: 延遲執行的毫秒數,即在delay毫秒之后第一次執行
 period:重復執行的時間間隔
*/

第一次執行之后,特定頻率執行,與3效果相同

publicvoid scheduleAtFixedRate(TimerTask task,Date firstTime,long period)

在delay毫秒之后第一次執行,后按照特定頻率執行

publicvoid scheduleAtFixedRate(TimerTask task,long delay,long period)

Timer注銷

timer.cancel();

schedule()和scheduleAtFixedRate()的區別

schedule()方法更注重保持間隔時間的穩定:保障每隔period時間可調用一次
scheduleAtFixedRate()方法更注重保持執行頻率的穩定:保障多次調用的頻率趨近于period時間,如果任務執行時間大于period,會在任務執行之后馬上執行下一次任務
四、Timer使用示例

使用Timer每隔2秒打印一次數據,并且任務在Timer啟動1秒之后開始

import java.util.Timer;import java.util.TimerTask;publicclassTestTimer{publicstaticvoid main(String[] args){Timer timer =newTimer();
        timer.schedule(newMyTask(),1000,2000);}}classMyTaskextendsTimerTask{@Overridepublicvoid run(){System.out.println("每隔2秒我就出現一次……");}}

使用Timer每隔一段時間隨機生成數字

import java.util.Timer;import java.util.Random;import java.util.TimerTask;publicclassTimerTest{publicstaticvoid main(String[] args){Timer timer =newTimer();NewTimerTask timerTask =newNewTimerTask();//程序運行后立刻執行任務,每隔100ms執行一次
        timer.schedule(timerTask,0,100);}}classNewTimerTaskextendsTimerTask{@Overridepublicvoid run(){
        createRandomNumber();
        createRandomNumberFromMathRandom();}//用純Math中的方法來隨機生成1-10之間的隨機數privatevoid createRandomNumberFromMathRandom(){int j =(int)(Math.round(Math.random()*10+1));System.out.println("隨機生成的數字為:"+j);}//用Random類的方式來隨機生成1-10之間的隨機數privatevoid createRandomNumber(){Random random =newRandom(System.currentTimeMillis());int value = random.nextInt();
         value =Math.abs(value);
         value = value%10+1;System.out.println("新生成的數字為:"+ value);}}

五、小結

通過上面的兩個簡單示例,我們可以很清楚的知道Timer的用法:

實現TimerTask接口,并即為單元任務,我們的單次運行業務邏輯寫在這里面
實例化一個Timer對象,用于啟動TimerTask任務,并通過調用不同的方法設置任務的執行時間、頻率
在實際的應用中,Timer多用于在夜間處理比較耗時并且數據狀態穩定時候的一些后臺操作,例如數據統計、數據備份等。

總結

以上是生活随笔為你收集整理的使用Timer执行定时任务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。