阅读量:1
在Java中,可以使用ScheduledExecutorService接口的scheduleAtFixedRate方法来定期执行一个任务。该方法接受四个参数:要执行的任务、延迟执行时间、任务执行周期和时间单位。
下面是一个使用scheduleAtFixedRate方法的示例代码:
import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class ScheduleAtFixedRateExample { public static void main(String[] args) { ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); // 创建一个Runnable任务 Runnable task = () -> { System.out.println("Task executed at " + System.currentTimeMillis()); }; // 延迟1秒后开始执行任务,然后每隔2秒执行一次 executor.scheduleAtFixedRate(task, 1, 2, TimeUnit.SECONDS); // 等待一段时间后停止任务 try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } executor.shutdown(); } }
在上面的示例中,我们首先创建了一个ScheduledExecutorService对象,然后定义了一个Runnable任务。然后,我们使用scheduleAtFixedRate方法来执行该任务,指定了延迟执行时间(1秒)和任务执行周期(2秒)。
最后,我们使用Thread.sleep方法等待10秒后停止任务,并通过调用executor.shutdown方法来关闭ScheduledExecutorService。
注意:在实际应用中,可能需要根据具体的需求来调整延迟执行时间和任务执行周期。