最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java定時器通信協(xié)議管理模塊Timer詳解

 更新時間:2022年08月05日 08:30:46   作者:???????萬惡的沫白  
這篇文章主要介紹了Java定時器通信協(xié)議管理模塊Timer,?Timer一般指定時器(通信協(xié)議管理模塊)人類最早使用的定時工具是沙漏或水漏,但在鐘表誕生發(fā)展成熟之后,人們開始嘗試使用這種全新的計時工具來改進定時器,達到準確控制時間的目的

Timer詳解

TimerTimerTask用于在后臺線程中調(diào)度任務的java.util類。TimerTask負責任務的執(zhí)行,Timer負責任務的調(diào)度。

定時功能

Timer提供了三種定時模式:

  • 一次性任務
  • 按照固定的延遲執(zhí)行(fixed delay)
  • 按照固定的周期執(zhí)行(fixed rate

執(zhí)行一次

Timer提供了兩種方法,應用于不同場景:

//在當前時間往后delay個毫秒開始執(zhí)行
public void schedule(TimerTask task, long delay) {...}
//在指定的time時間點執(zhí)行
public void schedule(TimerTask task, Date time) {...}
public static void main(String[] args) {
    //定義一個Timer
    Timer timer = new Timer("test-timer");
    //定義一個TimerTask
    TimerTask task = new TimerTask() {
        @Override
        public void run() {
            System.out.println("任務執(zhí)行時間:" + new Date() + "------------"
                               + "線程:" + Thread.currentThread().getName());
        }
    };
    long delay = 3000L;
    timer.schedule(task, delay);
    System.out.println("任務添加時間:" + new Date() + "------------"
                       + "線程:" + Thread.currentThread().getName());
}

工作方式:當達到我們指定的時間,執(zhí)行一次結(jié)束

任務雖然運行結(jié)束,但進程沒有被銷毀。并且執(zhí)行任務的線程名為我們定義的Timer的名稱。

我們看一下源碼:

public class Timer {
    //小頂堆,用來存放timeTask
    private final TaskQueue queue = new TaskQueue();
    
    private final TimerThread thread = new TimerThread(queue);
    
    public Timer(String name) {
        thread.setName(name);
        thread.start();
    }
}
public abstract class TimerTask implements Runnable {
    long nextExecutionTime;
    long period = 0;
    public abstract void run();
}
  • TaskQueue:基于小頂堆實現(xiàn),用來存放timerTask
  • TimerThread:任務執(zhí)行線程,繼承Thread
  • nextExecutionTime:假如任務需要多次執(zhí)行表示下一次執(zhí)行時間
  • period:每次任務執(zhí)行間隔時間
  • run():我們執(zhí)行任務的內(nèi)容

創(chuàng)建一個 Timer 對象就是新啟動了一個線程,但是這個新啟動的線程,并不是守護線程,它一直在后臺運行,通過如下 可以將新啟動的 Timer 線程設(shè)置為守護線程。我們可以使用以下構(gòu)造方法(public Timer(boolean isDaemon)public Timer(String name, boolean isDaemon))來設(shè)置。

Fixed Delay模式

//從當前時間開始delay個毫秒數(shù)開始定期執(zhí)行,周期是period個毫秒數(shù)
public void schedule(TimerTask task, long delay, long period) {...}
////從指定的firstTime開始定期執(zhí)行,往后每次執(zhí)行的周期是period個毫秒數(shù)
public void schedule(TimerTask task, Date firstTime, long period){...}

工作方式:

  • 第一次執(zhí)行,按照指定時間開始(如果此時TimerThread沒有執(zhí)行其他任務),如有其他任務在執(zhí)行,那就需要等到其他任務執(zhí)行完成才能執(zhí)行
  • 第二次執(zhí)行,每次任務是上一次任務開始執(zhí)行時間加上執(zhí)行的period時間。

到此這篇關(guān)于Java定時器通信協(xié)議管理模塊Timer詳解的文章就介紹到這了,更多相關(guān)Java Timer內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyEclipse整合ssh三大框架環(huán)境搭載用戶注冊源碼下載

    MyEclipse整合ssh三大框架環(huán)境搭載用戶注冊源碼下載

    這篇文章主要為大家詳細介紹了如何使用MyEclipse整合ssh三大框架進行環(huán)境搭載,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 使用springboot不自動初始化數(shù)據(jù)庫連接池

    使用springboot不自動初始化數(shù)據(jù)庫連接池

    這篇文章主要介紹了使用springboot不自動初始化數(shù)據(jù)庫連接池,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • spring 整合mybatis后用不上session緩存的原因分析

    spring 整合mybatis后用不上session緩存的原因分析

    因為一直用spring整合了mybatis,所以很少用到mybatis的session緩存。什么原因呢?下面小編給大家介紹spring 整合mybatis后用不上session緩存的原因分析,需要的朋友可以參考下
    2017-02-02
  • 教你怎么用Java數(shù)組和鏈表實現(xiàn)棧

    教你怎么用Java數(shù)組和鏈表實現(xiàn)棧

    本篇文章為大家詳細介紹了怎么用Java數(shù)組和鏈表實現(xiàn)棧,文中有非常詳細的代碼示例及注釋,對正在學習java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • idea 模板編程知識小結(jié)

    idea 模板編程知識小結(jié)

    這篇文章主要介紹了idea 模板編程的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Windows系統(tǒng)下JDK1.8與JDK11版本切換超詳細教程

    Windows系統(tǒng)下JDK1.8與JDK11版本切換超詳細教程

    這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下JDK1.8與JDK11版本切換的超詳細教程,我們可以有多個工程項目,用的JDK版本不一樣,這個時候就需要進行自由切換JDK版本了,需要的朋友可以參考下
    2023-07-07
  • VsCode配置java環(huán)境的詳細圖文教程

    VsCode配置java環(huán)境的詳細圖文教程

    vscode是一個免費的代碼編輯器,支持多種主題,應用起來簡單方便,下面這篇文章主要給大家介紹了關(guān)于VsCode配置java環(huán)境的詳細圖文教程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • springboot連接sqllite遇到的坑及解決

    springboot連接sqllite遇到的坑及解決

    這篇文章主要介紹了springboot連接sqllite遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java類的組成結(jié)構(gòu)詳解

    java類的組成結(jié)構(gòu)詳解

    大家好,本篇文章主要講的是java類的組成結(jié)構(gòu)詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Spring Task定時任務的配置和使用詳解

    Spring Task定時任務的配置和使用詳解

    本篇文章主要介紹了Spring Task定時任務的配置和使用詳解,實例分析了Spring Task定時任務的配置和使用的技巧,非常具有實用價值,需要的朋友可以參考下
    2017-04-04

最新評論

榆中县| 伊通| 峡江县| 古交市| 凌云县| 高阳县| 遂川县| 郧西县| 文昌市| 上林县| 常宁市| 文水县| 无极县| 黎城县| 高台县| 仁怀市| 南丹县| 澜沧| 汶上县| 小金县| 陆丰市| 秭归县| 延津县| 时尚| 合作市| 全州县| 天津市| 正阳县| 河北省| 阿坝县| 井陉县| 青阳县| 侯马市| 安阳市| 通渭县| 桃江县| 中西区| 峨山| 饶阳县| 博罗县| 东阳市|