設定方法:1、使用TimerTask的run方法定義了定時執行的任務;2、透過Timer的schedule方法,可以設定計時器的開始時間、間隔時間等;3、任務會在程式啟動後立即執行,然後每隔1000毫秒執行一次,持續執行直到定時器被取消即可。
本教學作業系統:windows10系統、Dell G3電腦。
在Java中,你可以使用Timer類別和TimerTask類別來實作定時任務。以下是一個簡單的例子,示範如何使用Timer和TimerTask設定計時器並執行任務:
import java.util.Timer; import java.util.TimerTask; public class TimerExample { public static void main(String[] args) { // 创建定时器对象 Timer timer = new Timer(); // 创建定时任务对象 TimerTask task = new TimerTask() { @Override public void run() { // 在此处编写定时执行的任务 System.out.println("Task executed at: " + System.currentTimeMillis()); } }; // 设置定时器,延迟0毫秒后开始执行任务,每隔1000毫秒执行一次 timer.schedule(task, 0, 1000); // 等待一段时间后,取消定时任务 try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } // 取消定时任务 timer.cancel(); System.out.println("Timer canceled"); } }
在上述範例中,TimerTask的run方法定義了定時執行的任務。透過Timer的schedule方法,你可以設定定時器的開始時間、間隔時間等。在這個範例中,任務會在程式啟動後立即執行,然後每隔1000毫秒執行一次,持續執行直到定時器被取消。
請注意,Timer類別在Java中已經被廢棄(deprecated),並且更推薦使用ScheduledExecutorService來執行定時任務,因為它提供了更強大和靈活的調度功能。以下是使用ScheduledExecutorService的範例:
import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class ScheduledExecutorExample { public static void main(String[] args) { // 创建ScheduledExecutorService对象 ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); // 创建定时任务对象 Runnable task = () -> { // 在此处编写定时执行的任务 System.out.println("Task executed at: " + System.currentTimeMillis()); }; // 设置定时器,延迟0毫秒后开始执行任务,每隔1000毫秒执行一次 scheduler.scheduleAtFixedRate(task, 0, 1000, TimeUnit.MILLISECONDS); // 等待一段时间后,关闭定时器 try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } // 关闭定时器 scheduler.shutdown(); System.out.println("Scheduler shutdown"); } }
這個範例中使用的是ScheduledExecutorService的scheduleAtFixedRate方法,其參數包括任務物件、初始延遲時間、間隔時間和時間單位。在這個範例中,任務會在程式啟動後立即執行,然後每隔1000毫秒執行一次,持續執行直到計時器關閉。
以上是java定時器怎麼設定時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!