在Java中,我們經(jīng)常需要開啟和關(guān)閉某個任務(wù)定時執(zhí)行。這個功能可以用定時任務(wù)的方式實現(xiàn)。
定時任務(wù)具體實現(xiàn)方法:
import java.util.Timer; import java.util.TimerTask; public class ScheduleTask { public static void main(String[] args) { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { // 定時任務(wù)執(zhí)行的具體邏輯 System.out.println("Hello, world!"); } }, 0, 1000); // 0 表示任務(wù)會立即執(zhí)行,1000 表示每次執(zhí)行間隔 1 秒鐘 } }
上述代碼中,我們創(chuàng)建了一個 Timer 對象,并通過 schedule 方法指定了任務(wù)的執(zhí)行時間和執(zhí)行間隔。在任務(wù)執(zhí)行的回調(diào)函數(shù) run 方法中,我們可以編寫具體的邏輯。
如果需要關(guān)閉定時任務(wù),可以調(diào)用 Timer 對象的 cancel 方法:
import java.util.Timer; import java.util.TimerTask; public class StopScheduleTask { public static void main(String[] args) { Timer timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { // 定時任務(wù)執(zhí)行的具體邏輯 System.out.println("Hello, world!"); } }; timer.schedule(task, 0, 1000); // 0 表示任務(wù)會立即執(zhí)行,1000 表示每次執(zhí)行間隔 1 秒鐘 // 5 秒鐘后停止定時任務(wù) try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } task.cancel(); timer.cancel(); } }
上述代碼中,我們創(chuàng)建了一個 Timer 對象以及一個 TimerTask 對象,并通過 schedule 方法指定了任務(wù)的執(zhí)行時間和執(zhí)行間隔。然后通過 Thread.sleep 方法等待 5 秒鐘后停止定時任務(wù)。
總結(jié):
Java 中可以使用 Timer 和 TimerTask 類實現(xiàn)定時任務(wù)的開啟和關(guān)閉。通過 schedule 方法指定任務(wù)的執(zhí)行時間和執(zhí)行間隔,在回調(diào)函數(shù)中編寫任務(wù)具體的邏輯。如果需要關(guān)閉定時任務(wù),可以調(diào)用 Timer 對象的 cancel 方法。