Java如何延迟运行呢?

欣喜 Java经验 发布时间:2024-02-01 16:34:30 阅读数:11108 1
下文笔者讲述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();
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202402/17067764977876.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者