timer 功能在指定的時間間隔內重複觸發指定視窗的計時器事件。語法Timer ( interval {, windowname } )參數interval:指定兩次觸發Timer事件之間的時間間隔,有效值在0到65之間。本文文主要為大家詳細介紹了Java定時器Timer的使用方法,具有一定的參考價值,有興趣的小夥伴們可以參考一下。
定時規劃任務功能在Java中主要使用的是Timer對象,它在內部使用多執行緒的方式進行處理,所以它和多執行緒技術還是有非常大的關聯的。在JDK中Timer類別主要負責規劃任務的功能,也就是在指定的時間開始執行某一個任務,但封裝任務的類別卻是TimerTask類別。
透過繼承TimerTask 類別並實作run() 方法來自訂要執行的任務:
public class Mytask extends TimerTask { @Override public void run() { DateFormat dateFormat = TimeUtil.df.get(); System.out.println("我的任务运行了" + dateFormat.format(new Date())); } }## 執行Timer.schedule(TimerTask task,Date time) 在執行時間執行任務:
#
public class Run { private static Timer timer=new Timer(); public static void main(String[] args) throws ParseException { timer.schedule(new Mytask(), TimeUtil.df.get().parse("2017-09-14 09:19:30")); } }備註:時間轉換工具類,確保執行緒安全:
public class TimeUtil { public static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() { @Override protected DateFormat initialValue() { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } }; }
二、Timer類別注意事項
private static Timer timer=new Timer(true);2、提前:當計畫時間早於目前時間,則任務立即運作。 3、延遲:TimerTask 是以佇列的方式一個一個被順序運行的,所以執行的時間和你預期的時間可能不一致,因為前面的任務可能消耗的時間較長,則後面的任務運轉的時間會被延遲。延遲的任務具體開始的時間,就是依據前面任務的"結束時間"
值得注意的是,Timer 的cancel()有時不一定會停止執行排程任務,而是正常執行。這是因為Timer類別中的cancel()方法有時並沒有爭搶到queue鎖,所以TimerTask類別中的任務繼續正常執行。
三、scheduleAtFixedRate(TimerTask task,Date firstTime,long period) 和schedule(TimerTask task,Date firstTime,long period) 區別
########################## ######相同點:######1、方法schedule 和方法scheduleAtFixedRate 都會依序執行,所以不用考慮非執行緒安全的情況。 ######2、方法schedule 和方法 scheduleAtFixedRate 如果執行任務的時間沒有被延遲,那麼下一次任務的執行時間參考的是上一次的任務的"開始"時的時間來計算的。 ######3、方法schedule 和方法 scheduleAtFixedRate 如果執行任務的時間被延遲了,那麼下一次任務的執行時間參考的是上一次任務"結束"時的時間來計算。 ###########################不同點:######### 方法schedule 與方法scheduleAtFixedRate 使用上基本上沒什麼差異,就是scheduleAtFixedRate 具有追趕執行性,什麼意思呢?就是如果任務 在週期性運行過程中被打斷了,scheduleAtFixedRate 會嘗試把之前落下的任務補上運行。而schedule就不管了,接著運行接下來的任務就行了,可以參考這篇博客,寫的很生動。 ######以上內容就是如何使用Java定時器Timer的方法,希望能幫助大家。 ######相關推薦:#########C# 定時器Timer的實例介紹#########
Java 定時器(Timer,TimerTask)詳解及實例程式碼
#以上是如何使用Java定時器Timer的詳細內容。更多資訊請關注PHP中文網其他相關文章!

ByteCodeachievesPlatFormIndenceByByByByByByExecutedBoviratualMachine(VM),允許CodetorunonanyplatformwithTheApprepreprepvm.Forexample,Javabytecodecodecodecodecanrunonanydevicewithajvm

Java不能做到100%的平台獨立性,但其平台獨立性通過JVM和字節碼實現,確保代碼在不同平台上運行。具體實現包括:1.編譯成字節碼;2.JVM的解釋執行;3.標準庫的一致性。然而,JVM實現差異、操作系統和硬件差異以及第三方庫的兼容性可能影響其平台獨立性。

Java通過“一次編寫,到處運行”實現平台獨立性,提升代碼可維護性:1.代碼重用性高,減少重複開發;2.維護成本低,只需一處修改;3.團隊協作效率高,方便知識共享。

在新平台上創建JVM面臨的主要挑戰包括硬件兼容性、操作系統兼容性和性能優化。 1.硬件兼容性:需要確保JVM能正確使用新平台的處理器指令集,如RISC-V。 2.操作系統兼容性:JVM需正確調用新平台的系統API,如Linux。 3.性能優化:需進行性能測試和調優,調整垃圾回收策略以適應新平台的內存特性。

javafxeffectife addressemanddressEndressencissencies uningusement insuplatform-agnosticsCenegraphandCsSsStyling.1)itabstractsplactsplatsplatsplatsplatsplatformsthroughascenegraph,確保consistentertrenderingrenderingrenderingacrosswindows,macoswindwind,Macos,MacOs.2)

JVM的工作原理是將Java代碼轉換為機器碼並管理資源。 1)類加載:加載.class文件到內存。 2)運行時數據區:管理內存區域。 3)執行引擎:解釋或編譯執行字節碼。 4)本地方法接口:通過JNI與操作系統交互。

JVM使Java實現跨平台運行。 1)JVM加載、驗證和執行字節碼。 2)JVM的工作包括類加載、字節碼驗證、解釋執行和內存管理。 3)JVM支持高級功能如動態類加載和反射。

Java應用可通過以下步驟在不同操作系統上運行:1)使用File或Paths類處理文件路徑;2)通過System.getenv()設置和獲取環境變量;3)利用Maven或Gradle管理依賴並測試。 Java的跨平台能力依賴於JVM的抽象層,但仍需手動處理某些操作系統特定的功能。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具