Java延时执行的三种实现方式

 更新时间:2023年12月24日 12:01:55   作者:python100  
本文主要介绍了Java延时执行的三种实现方式,主要包括了Thread.sleep()方法,.sleep()使用Timer类或使用ScheduledExecutorService接口,感兴趣的可以了解一下

为了实现Java的延迟执行,常用的方法包括使用Thread。.sleep()使用Timer类,或使用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();
    }
}

到此这篇关于Java延时执行的三种实现方式的文章就介绍到这了,更多相关Java延时执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java微服务间接口调用 feign

    Java微服务间接口调用 feign

    这篇文章主要介绍了微服务间的接口调用feign,Feign是一种声明式、模板化的HTTP客户端。在spring cloud中使用Feign,可以做到类似于普通的接口的请求调用,感兴趣的小伙伴可以参考阅读
    2023-03-03
  • Java实现酒店客房管理系统

    Java实现酒店客房管理系统

    这篇文章主要为大家详细介绍了Java实现酒店客房管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • java实现求两个字符串最长公共子串的方法

    java实现求两个字符串最长公共子串的方法

    这篇文章主要介绍了java实现求两个字符串最长公共子串的方法,是一道华为OJ上的一道题目,涉及Java针对字符串的遍历、转换及流程控制等技巧,需要的朋友可以参考下
    2015-12-12
  • 如何自定义Jackson序列化 @JsonSerialize

    如何自定义Jackson序列化 @JsonSerialize

    这篇文章主要介绍了如何自定义Jackson序列化 @JsonSerialize,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Spring MVC InitBinder验证方法

    Spring MVC InitBinder验证方法

    这篇文章主要介绍了Spring MVC InitBinder验证方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Java中Lambda表达式之Lambda语法与作用域解析

    Java中Lambda表达式之Lambda语法与作用域解析

    这篇文章主要介绍了Java中Lambda表达式之Lambda语法与作用域解析重点介绍Lambda表达式基础知识,需要的朋友可以参考下
    2017-02-02
  • java中驼峰与下划线的写法互转

    java中驼峰与下划线的写法互转

    这篇文章主要介绍了java中驼峰与下横线的写法互转方法,文中先是进行了简单的介绍,之后跟大家分享了一个自己编写的工具类的示例代码,有需要的朋友可以参考借鉴,下面来一起学习学习吧。
    2017-01-01
  • Spring Boot整合Bootstrap的超详细步骤

    Spring Boot整合Bootstrap的超详细步骤

    之前做前端开发,在使用bootstrap的时候都是去官网下载,然后放到项目中,在页面引用,下面这篇文章主要给大家介绍了关于Spring Boot整合Bootstrap的超详细步骤,需要的朋友可以参考下
    2023-05-05
  • Java基础Map集合详析

    Java基础Map集合详析

    这篇文章主要介绍了Java基础Map集合详析,主要通过介绍Map集合的常用方法、Map的获取方法的一些相关资料展开内容,需要的小伙伴可以参考一下
    2022-04-04
  • Java实现链栈的示例代码

    Java实现链栈的示例代码

    这篇文章主要为大家详细介绍了如何使用链式存储结构来实现栈,也就是链栈的实现,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-11-11

最新评论