使用 Java 來調(diào)度定時任務(wù)時,我們經(jīng)常會使用 Timer 類搞定。Timer 簡單易用,在一些業(yè)務(wù)場景下用來實現(xiàn)簡單定時調(diào)度。
安義ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
// 5秒后開始執(zhí)行,每秒執(zhí)行一次 Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("hello world"); } }, 50000 , 1000);
經(jīng)過delay(ms)后開始進(jìn)行調(diào)度,僅僅調(diào)度一次。
public void schedule(TimerTask task, long delay)
在指定的時間點(diǎn)time上調(diào)度一次
public void schedule(TimerTask task, Date time)
在delay(ms)后開始調(diào)度,每次調(diào)度完后,最少等待period(ms)后才開始調(diào)度
public void schedule(TimerTask task, long delay, long period)
在到了指定時間后開始調(diào)度,每次調(diào)度完后,最少等待period(ms)后才開始調(diào)度。
public void schedule(TimerTask task, Date firstTime, long period)
在delay(ms)后開始調(diào)度,然后每經(jīng)過period(ms)再次調(diào)度。
public void scheduleAtFixedRate(TimerTask task, long delay, long period)
schedule方法的區(qū)別在于:
schedule在計算下一次執(zhí)行的時間的時候,是通過當(dāng)前時間(在任務(wù)執(zhí)行前得到) + 時間片,而scheduleAtFixedRate方法是通過當(dāng)前需要執(zhí)行的時間(也就是計算出現(xiàn)在應(yīng)該執(zhí)行的時間)+ 時間片,前者是運(yùn)行的實際時間,而后者是理論時間點(diǎn)。比如:
在到了指定時間后開始調(diào)度,每次調(diào)度完后,最少等待period(ms)后才開始調(diào)度。
public void scheduleAtFixedRate(TimerTask task, Date firstTime,long period)
Timer 類里包含一個任務(wù)隊列和一個異步輪詢線程。任務(wù)隊列里容納了所有待執(zhí)行的任務(wù),所有的任務(wù)將會在這一個異步線程里執(zhí)行,切記:
public class Timer { private final TaskQueue queue = new TaskQueue(); private final TimerThread thread = new TimerThread(queue); }
Timer 的任務(wù)隊列 TaskQueue 是一個特殊的隊列,它內(nèi)部是一個數(shù)組。這個數(shù)組會按照待執(zhí)行時間進(jìn)行堆排序,堆頂元素總是待執(zhí)行時間最小的任務(wù)。
更多關(guān)于Jave時間類庫Timer的使用方法與實例請查看下面的相關(guān)鏈接
新聞標(biāo)題:Java時間類庫Timer的使用方法與實例詳解
文章轉(zhuǎn)載:http://bm7419.com/article46/jcschg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計公司、全網(wǎng)營銷推廣、網(wǎng)站建設(shè)、App開發(fā)、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)