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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java timertask 初始化_定时器实现方式之TimerTask、Timer

發布時間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java timertask 初始化_定时器实现方式之TimerTask、Timer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在未來某個指定的時間點或者經過一段時間延遲后執行某個事件,這時候就需要用到定時器了。定時器的實現方式有很多種,今天總結最簡單的實現方式。java 1.3引入了定時器框架,用于在定時器上下文中控制線程的執行,其由類Timer和TimerTask構成。Timer適用于大規模并發調度定時任務,在內部,該類使用二進制的堆表示其定時任務隊列。

通過繼承TimerTask或者創建匿名類的方式重寫run()方法,創建一個定時任務,通過將其作為第一個參數調用Timer得schedule()方法,實現定時器。

import?java.util.Timer;import?java.util.TimerTask;public?class?TimerDemo?{????//?通過創建匿名類方式實現

public?static?void?main(String[]?args)?{

//?首先初始化一個TimerTask的匿名子類

TimerTask?task?=?new?TimerTask()?{

@Override????????????public?void?run()?{

System.out.println("開始執行");????????????????//退出程序返回最上層,0表示正常退出程序,非0表示非正常退出程序

System.exit(0);

}

};????????//通過Timer調用

Timer?timer?=?new?Timer();

timer.schedule(task,?2000);

}

}

Timer創建的定時器一般為非線程守護,如果想要創建守護線程需調用Timer(boolean isDaemon) 傳遞參數true給isDaemon。

Timer類聲明的方法如下:void schedule(TimerTask task, long delay) 在delay毫秒之后調度任務執行。

void schedule(TimerTask task, Date time) 在某個時間點調度任務執行。

void schedule(TimerTask task, long delay, long period) 在delay毫秒之后調度任務開始執行,以固定時間間隔的方式重復執行,后續將一大約period毫秒的固定時間間隔執行。

void schedule(TimerTask task, Date firstTime, long period) 調度任務于firstTime開始,以固定時間間隔的方式重復執行,后續將一大約period毫秒的固定時間間隔執行。

void scheduleAtFixedRate(TimerTask task, long delay, long period) 在delay毫秒之后,開始調度任務以固定速率的方式重復執行,后續將以大約period毫秒數的固定時間間隔執行。

void scheduleAtFixedRate(TimerTask task, Date firstTime,long period) 調度任務于firstTime開始,以固定速率的方式重復執行,后續將大約period毫秒數的固定時間間隔執行。

sched(TimerTask task, long time, long period) 在指定時間執行調度任務執行,以固定時間間隔的方式重復執行,后續將一大約period毫秒的固定時間間隔執行。

void cancel() 終止定時器,丟棄所有當前調度的定時器任務。不干涉當前正在執行的任務,能保證正在執行的任務一定是最后一個被該定時器執行的任務。

int purge() 從該定時器隊列中移除所有取消的定時任務并且返回被移除任務的數目。

定時任務都是抽象類TimerTask子類的實例,這些子類實現Runnable接口,當子類實例化TimerTask的時候,需要重寫其voud run()方法。

TimerTask類聲明的方法如下:boolean cancel()取消這個定時任務

long scheduledExecutionTime() 返回此定時任務最近實際被調度執行時間。

Timer的cancel()和TimerTask的TimerTask的區別在于,Timer的cancel()會終止定時器并放棄當前任意被調度的定時任務,而TimerTask的cancel()方法僅僅會取消正在調度的定時任務。

作者:巨蟹糖

原文鏈接:https://www.cnblogs.com/Sweethoney/p/10486483.html

總結

以上是生活随笔為你收集整理的java timertask 初始化_定时器实现方式之TimerTask、Timer的全部內容,希望文章能夠幫你解決所遇到的問題。

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