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();
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


