Java?Timer與TimerTask類(lèi)使程序計(jì)時(shí)執(zhí)行
Java 程序設(shè)計(jì) Timer&TimerTask類(lèi)
Timer&TimerTask類(lèi)
根據(jù)設(shè)定的時(shí)間安排實(shí)現(xiàn)程序任務(wù)的自動(dòng)執(zhí)行
每一個(gè)調(diào)度任務(wù)類(lèi)都需要繼承java.util.TimerTask父類(lèi),任務(wù)的啟動(dòng)需要通過(guò)java.util.Timer類(lèi)完成
TimerTask類(lèi)常用方法
方法 | 作用 |
---|---|
public void cancel() | 終止任務(wù) |
public void run() | 任務(wù)需要執(zhí)行的具體操作 |
public long scheduleExecutionTime() | 返回最近一次要執(zhí)行該任務(wù)的時(shí)間 |
Timer類(lèi)常用方法
方法 | 作用 |
---|---|
public Timer() | 創(chuàng)建一個(gè)計(jì)時(shí)器并啟動(dòng)該計(jì)時(shí)器 |
public void cancel() | 用來(lái)終止該計(jì)時(shí)器,并放棄所以已安排的任務(wù),對(duì)當(dāng)前正在執(zhí)行的任務(wù)沒(méi)有影響 |
public int purge() | 將所有已經(jīng)取消的任務(wù)移除,用來(lái)釋放內(nèi)存空間 |
public void schedule(TimerTask task,Date time) | 安排一個(gè)任務(wù)在指定的時(shí)間執(zhí)行,如果已經(jīng)超過(guò)該時(shí)間,立即執(zhí)行 |
public void schedule(TimerTask task,Date firstTime,long period) | 安排一個(gè)任務(wù)在指定的時(shí)間執(zhí)行,之后以固定的頻率重復(fù)執(zhí)行 |
public void schedule(TimerTask task,long delay) | 安排一個(gè)任務(wù)在一段時(shí)間后執(zhí)行 |
public void schedule(TimerTask task,long delay,long period) | 安排一個(gè)任務(wù)在一段時(shí)間后執(zhí)行,之后以固定的頻率重復(fù)執(zhí)行 |
public void schedule AtFixedRate(TimerTask task,Date firstTime,long period) | 安排一個(gè)任務(wù)在指定的時(shí)間執(zhí)行,之后以近似固定的頻率重復(fù)執(zhí)行 |
public void schedule AtFixedRate(TimerTask task,long delay,long period) | 安排一個(gè)任務(wù)在一段時(shí)間后執(zhí)行,之后以近似固定的頻率重復(fù)執(zhí)行 |
schedule()方法的執(zhí)行時(shí)間間隔永遠(yuǎn)是固定的,如果之前出現(xiàn)了延遲的情況,之后也會(huì)繼續(xù)按照設(shè)定好的間隔時(shí)間來(lái)執(zhí)行。
scheduleAtFixedRate()方法可以根據(jù)出現(xiàn)的延遲時(shí)間自動(dòng)調(diào)整下一次間隔的執(zhí)行時(shí)間。
演示:
import java.util.Timer; import java.util.TimerTask; class Test extends TimerTask{ @Override public void run() { System.out.println(Thread.currentThread().getName()+"時(shí)間:"+System.currentTimeMillis()); } } public class Hello { public static void main(String[] args) { Timer timer = new Timer(); timer.scheduleAtFixedRate(new Test(),100,1000); } }
timer.scheduleAtFixedRate(new Test(),100,1000);
定義間隔任務(wù),100毫秒后開(kāi)始執(zhí)行,每間隔1秒執(zhí)行1秒
到此這篇關(guān)于Java Timer與TimerTask類(lèi)使程序計(jì)時(shí)執(zhí)行 的文章就介紹到這了,更多相關(guān)Java Timer 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring事務(wù)管理中關(guān)于數(shù)據(jù)庫(kù)連接池詳解
事務(wù)的作用就是為了保證用戶的每一個(gè)操作都是可靠的,事務(wù)中的每一步操作都必須成功執(zhí)行,只要有發(fā)生異常就 回退到事務(wù)開(kāi)始未進(jìn)行操作的狀態(tài)。事務(wù)管理是Spring框架中最為常用的功能之一,我們?cè)谑褂肧pring Boot開(kāi)發(fā)應(yīng)用時(shí),大部分情況下也都需要使用事務(wù)2022-12-12java 商戶PC端接入支付寶支付的實(shí)現(xiàn)方法
這篇文章主要介紹了java 商戶PC端接入支付寶支付的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Feign調(diào)用服務(wù)時(shí)丟失Cookie和Header信息的解決方案
這篇文章主要介紹了Feign調(diào)用服務(wù)時(shí)丟失Cookie和Header信息的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Java結(jié)構(gòu)型設(shè)計(jì)模式之裝飾模式詳解
裝飾模式(Decorator Pattern)允許向一個(gè)現(xiàn)有的對(duì)象添加新的功能,同時(shí)又不改變其結(jié)構(gòu)。這種類(lèi)型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有類(lèi)的一個(gè)包裝。這種模式創(chuàng)建了一個(gè)裝飾類(lèi),用來(lái)包裝原有的類(lèi),并在保持類(lèi)方法簽名完整性的前提下,提供了額外的功能2023-03-03SpringCloud 如何使用feign時(shí)的復(fù)雜參數(shù)傳遞
這篇文章主要介紹了SpringCloud 如何使用feign時(shí)的復(fù)雜參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07SpringBoot中Controller參數(shù)與返回值的用法總結(jié)
這篇文章主要介紹了SpringBoot中Controller參數(shù)與返回值的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07