幫助文件 | JDK 1.8 中的 Timer 類
1 Class Timer
定時器 Timer 類位於java.util
包,並且繼承自根類 Object,具體為:
public class Timer extends Object
執行緒排程任務是可以在後臺執行緒中執行的能力。任務可以執行一次,也可以定期重複執行。
與每個 Timer 物件相對應的是一個單獨的後臺執行緒,它用於順序執行所有定時器的任務。定時器任務應該很快完成。如果一個計時器任務花費了大量的時間來完成,它會“影響”計時器的任務執行執行緒。同時,反過來,延遲執行子序列的任務,當(或如果)延遲任務最終完成的時候,這些任務可能會“串聯”並迅速執行。
在對 Timer 物件的最後一次實時引用消失後,所有未完成的任務都已完成執行,計時器任務的執行執行緒將優雅地終止(併成為垃圾收集的物件)。然而,垃圾回收器可能在任意長的時間內回收垃圾物件(換言之,不知道垃圾回收器什麼時候會執行,或者會不會執行,例如,如果記憶體空間足夠的話,垃圾回收器可能一直不執行)。預設情況下,任務執行執行緒不作為守護執行緒執行,因此它能夠使應用程式終止。如果我們想要快速終止定時器的任務執行執行緒,我們應該呼叫計時器的cancel
如果定時器的任務執行執行緒意外終止,例如,因為它呼叫了stop
方法,那麼在定時器上排程任務的任何進一步的嘗試都將會產生一個 IllegalStateException,就像定時器的cancel
方法被呼叫一樣。
這個類(Timer)是執行緒安全的:多個執行緒可以共享一個 Timer 物件,而不需要外部同步。
這個類(Timer)不提供實時保證:使用Object.wait(long)
方法是排程任務。
Java 5.0 引入了java.util.concurrent
包,其中一個併發工具是 ScheduledThreadPoolExecutor,它用於以給定速率或延遲重複執行任務的執行緒池。這實際上是一個更靈活的替代 Timer / TimerTask 組合,因為它允許多個服務執行緒,接受各種時間單位,並且不需要子類 TimerTask(僅實現 Runnable 介面)。在一個執行緒上配置 ScheduledThreadPoolExecutor 等同於使用 Timer 類。
- 實現注意事項:這個類可以擴充套件到大量併發排程的任務(數千應該沒有問題)。在內部,它使用二進位制堆表示其任務佇列,因此計劃任務的成本為
O(logn)
,其中n
為併發計劃排程任務的數量。 - 實現注意事項:所有建構函式啟動定時器執行緒。
起始版本:1.3
2 概要
2.1 構造方法概要
Timer()
:建立一個新的定時器。Timer(boolean isDaemon)
:建立一個新的定時器,其關聯執行緒可以作為守護程序執行。Timer(String name)
:建立一個新的定時器,其關聯執行緒具有指定的名稱。Timer(String name, boolean isDaemon)
2.1 方法概要
void cancel()
:終止此定時器,丟棄當前任何的排程任務。int purge()
:從當前的定時器任務佇列中,移除所有已經取消的任務。void schedule(TimerTask task, Date time)
:在指定的時間點,執行指定的任務。void schedule(TimerTask task, Date firstTime, Long period)
:從指定的時間點開始執行指定的任務,並以固定的時間週期重複執行指定的任務。void schedule(TimerTask task, Long delay)
:在經過指定的延遲時間之後,執行指定的任務。void schedule(TimerTask task, Long delay, Long period)
:在經過指定的延遲時間之後,執行指定的任務,並以固定的時間週期重複執行指定的任務。void scheduleAtFixedRate(TimerTask task, Date firstTime, Long period)
:從指定的時間點開始執行指定的任務,並以固定的時間週期重複執行指定的任務。void scheduleAtFixedRate(TimerTask task, Long delay, Long period)
:在經過指定的延遲時間之後,執行指定的任務,並以固定的時間週期重複執行指定的任務。
相關推薦
幫助文件 | JDK 1.8 中的 Timer 類
1 Class Timer 定時器 Timer 類位於java.util包,並且繼承自根類 Object,具體為: public class Timer extends Object 執行緒排程任務是可以在後臺執行緒中執行的能力。任務可以執行一次,也可
將CHM檔案轉換成html檔案、將jdk幫助文件加入到eclipse中,jdk1.8中文幫助文件下載
一、將CHM檔案轉換成html檔案 1.下載相關的CHM檔案,如:我下載的是jdk1.8幫助文件(中文版),需要的自行下載,我已儲存到我的百度網盤了,連結在最下方。 注:個人建議下載谷歌版的,可以參考下方這張圖: 2.將whm檔案下載到D盤的jdkap
小議 JDK 1.8 中的 ConCurrentHashMap 和 ConcurrentSkipListMap
A) ConCurrentHashMap 在 jdk1.8 中主要做了兩方面的改進。 1) 取消segments欄位,直接採用transient volatile HashEntry<K,V>[] table儲存資料, &nb
jdk 1.8中的list排序
首先看看collections實現 public static <T> void sort(List<T> list, Comparator<? super T> c) { list.sort(c);
在eclipse中如何用JDK的幫助文件
剛開始用eclipse,不知道如何在eclipse中用JDK的幫助文件以及在eclipse中如何設定 這幾天終於讓我給搞定了,現在總結下來, 希望能給大家帶來幫助。 我寫個恐怕是最簡單的plugin: 1 建個目錄: bdsc.java.doc 2 pl
解決Eclipse中新建jsp文件ISO8859-1 編碼問題
ces 問題 eclips cli -- ips pes 中新 文件 看了許多的貼說是在eclipse --> window --> Preferences --> General --> Content Types --> text-->
jdk 1.8 VisualVM 插件 地址 變更
連不上 ref 更新 net 通過 bsp get 變更 .net 打開Java VisualVM檢查更新插件時,默認的連接連不上,通過瀏覽器訪問之後發現默認的服務器已經404,新地址已經遷移到github,下面這個地址裏面有不同版本jdk對應的插件中心地址。 https:
寫一個腳本批量轉換項目中GB2312編碼的文件為UTF-8編碼
for 腳本 一個 bash iconv lua In don convert #!/bin/bash convert_file() { for file in `find .` do if [[ -f $file ]] t
Java 007 面向物件(構造方法、static關鍵字、JDK幫助文件、Math類)
知識點梳理 心得體會 小知識點 1.不同型別的靜態變數 1>靜態變數是基本資料型別時,類的外部不用建立該類例項可以能直接使用 2>靜態變數是引用時,即靜態變數是一個物件的引用,必須先初始化這個物件,才能將引用指向靜態變數 2.靜態成員與例項成員 1&
visual studio 2013 本地幫助中新增 ArcEngine的幫助文件
在 ArcObject SDK For .Net Framework 安裝完成後,visual studio 2013 本地幫助中安裝 ArcEngine的幫助文件 1、選擇 “幫助”--“設定幫助首選項”--“在幫助檢視器中啟動” 2、選擇 “幫助”--“新增何移除幫助
在 CentOS 1804 中手動安裝 JDK 1.8
使用FlashFXP上傳jdk到CentOS,檔案位置如圖所示: 進入jdk所在的資料夾: [[email protected] ~]# cd /usr/java/ 檢視資料夾下的檔案: [[email protected] ja
在eclipse中檢視sources原始碼和JavaDoc幫助文件
今天學習Netty的過程中,從官網下載的netty裡面的內容如下: 其中jar資料夾裡面的內容如下: 可以看到每一個具體的jar包就對應有一個sources.jar包,然後所有的幫助文件在javaDoc檔案下面的jar包裡面 那怎麼檢視一個類的原始碼和幫助文件呢??? 當我們在沒有進行相應的配置前,當我
特定docker容器中安裝jdk 1.8
前言:由於一些通過docker-compse安裝的特定的docker 容器中沒有安裝vim或者jdk。 通過以下步驟來安裝和使用指定版本的jdk 1.在宿主系統下載所需要的jdk版本的gz檔案 2.複製gz檔案到容器中的root的使用者目錄下 docker cp
Java1.8 幫助文件
中文 – 谷歌版 線上版: https://blog.fondme.cn/apidoc/jdk-1.8-google/ 下載連結:http://download.csdn.net/detail/qw599186875/98
jdk幫助文件
java 1.6 幫助文件中文英文Java1.8 幫助文件英文中文 – 谷歌版中文 – 有道版中文 – 百度版JDK1.8 API 英文 Java幫助文件JDK API java 幫助文件 JDK1.8 API英文java幫助文件Java最新幫助文件連結:http://dow
DirectShow學習筆記1-幫助文件Introduction to DirectShow Application Programming
翻譯和摘要 DirectShow幫助文件中: Getting Started——> Introduction to DirectShow Application Programming 文章 一、Filters and Filter Graphs DirectShow 中的
Fiddler2介紹及使用和中文幫助文件(1)
Fiddler2 主選單 六個主選單分別是: 檔案(File) Capture Traffic ——啟用捕獲功能,快捷鍵 F12 此功能的開啟/關閉狀態,程式安裝後預設是開啟的。可以在 Fiddler 底部狀態列最左側看到:(開啟狀態)、(關閉狀態) 也可以通過滑鼠點選狀態列該圖示來進行切換。 Load A
在vim和macvim中使用中文幫助文件!
困擾了我一週的問題終於解決了,好開心!下面介紹一下如何實現如題所述的要求。 首先需要去下載中文文件,地址在這。 下載完成後將壓縮包解壓,並釋放到你指定的目錄下,比如~/vimcdoc 接著進入這個目錄 ,即在terminal內輸入 cd ~/vimcd
Linux中怎麼檢視命令的幫助文件、怎麼檢視系統配置檔案的幫助文件?
引言:上期回顧(想要學習的童鞋可以點選看看) 上一章講訴了怎麼快速查詢檔案,以及怎麼找到一個命令所在位置,那麼這一章就來講怎麼檢視命令的幫助文件。在Linux命令中,我們是不會每個命令都會講到的,如果遇到沒有見過的命令該怎麼辦呢?建議大家先不要去問前輩,這樣自己的印象不會深
java8 JDK1.8 API 中文 翻譯版 java幫助文件
java 1.6 幫助文件 中文 英文 Java1.8 幫助文件 英文 中文 – 谷歌版 中文 – 有道版 中文 – 百度版 JDK1.8 API 英文 Java幫助文件 JDK API java 幫助文件 J