Java如何延迟运行呢?
下文笔者讲述java代码延迟运行的方法及示例分享,如下所示
java延迟运行的实现思路: 方式1: 使用Thread.sleep()方法 方式2: 使用Timer类 方法 方式3: 使用ScheduledExecutorService接口例
使用Thread.sleep()方法
Thread.sleep()方法是一种静态方法 用于暂停执行当前线程一段时间 将CPU交给其他线程 使用这种方法实现延迟执行非常简单 只需将延迟时间作为参数传入即可 public class TestDelay { public static void main(String[] args) { System.out.println("Start: " + System.currentTimeMillis()); try { Thread.sleep(5000); //延时5秒 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("End: " + System.currentTimeMillis()); } } 注意事项: Thread.sleep()方法可被其它线程中断 从而提前结束暂停
使用Timer类
Timer类可以用来安排一次执行任务或重复固定执行 需要结合TimerTask类 使用Timer来实现延迟执行 import java.util.Timer; import java.util.TimerTask; public class TimerTaskTest { public static void main(String[] args) { TimerTask task = new TimerTask() { @Override public void run() { System.out.println("Task executed"); } }; Timer timer = new Timer(); timer.schedule(task, 5000); // 在5秒内执行task } }
使用ScheduledExecutorService接口
ScheduledExecutorService接口是ExecutorService的子接口 增加了对延迟执行或定期执行任务的支持 ScheduledExecutorService 提供错误处理、结果获取等更强大的功能 import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class ScheduledExecutorServiceTest { public static void main(String[] args) { ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); executor.schedule(new Runnable() { @Override public void run() { System.out.println("Task executed"); } }, 5, TimeUnit.SECONDS); // 五秒钟后执行任务 executor.shutdown(); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。