Java8使用Supplier启动ScheduledThread代码实例

 更新时间:2024年01月29日 10:25:08   作者:Smallc0de  
这篇文章主要介绍了Java8使用Supplier启动ScheduledThread详解,项目开启立即启动定时任务是很多项目都会遇到的一个需求,如何利用Java提供的函数优雅的写出来十分考验一个人的功底,需要的朋友可以参考下

Supplier + ScheduledExecutorService

Java8中给我们提供了一系列的函数式接口,能够活用这些函数式接口减少代码的冗余,使得代码更加易读就十分考验开发的功底,今天结合一个Run起来就批量启动的定时任务项目需求,做一个Supplier + ScheduledExecutorService的组合,直接贴代码供大家参考。

先简单写两个任务类作为模拟定时启动的任务。

public class ScheduleTask1 implements Runnable{
    @Override
    public void run() {
        System.out.println("++++++++++");
    }
}
public class ScheduleTask2 implements Runnable{
    @Override
    public void run() {
        System.out.println("-------------");
    }
}

启动方法,利用静态方法+Supplier直接启动定时线程池,并且把所有需要执行的任务添加到池子中,达到启动即执行的目的。

public class ScheduleTest {
    private static final ScheduleTask1 task1=new ScheduleTask1();
    private static final ScheduleTask2 task2=new ScheduleTask2();
	//利用静态方法+Supplier直接启动定时线程池,并且把所有需要执行的任务添加到池子中
    private static final ScheduledExecutorService schedulePool=((Supplier<ScheduledExecutorService>)()->{
        ScheduledExecutorService schedule= Executors.newScheduledThreadPool(2);
        schedule.scheduleAtFixedRate(task1,0,1,TimeUnit.SECONDS);
        schedule.scheduleAtFixedRate(task2,0,2,TimeUnit.SECONDS);
        return schedule;
    }).get();
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Start");
    }
}

到此这篇关于Java8使用Supplier启动ScheduledThread详解的文章就介绍到这了,更多相关Supplier启动ScheduledThread内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 修改xml文件再也不用重启项目mybatis-xmlreload方法

    修改xml文件再也不用重启项目mybatis-xmlreload方法

    这篇文章主要为大家介绍了修改xml文件再也不用重启项目mybatis-xmlreload,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java中Word与PDF转换为图片的方法详解

    Java中Word与PDF转换为图片的方法详解

    这篇文章主要为大家详细介绍了如何使用Java实现将Word与PDF转换为图片,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10
  • Java结构型设计模式中代理模式示例详解

    Java结构型设计模式中代理模式示例详解

    代理模式(Proxy Parttern)为一个对象提供一个替身,来控制这个对象的访问,即通过代理对象来访问目标对象。本文将通过示例详细讲解一下这个模式,需要的可以参考一下
    2022-09-09
  • Redis有效时间设置以及时间过期处理操作

    Redis有效时间设置以及时间过期处理操作

    这篇文章主要介绍了Redis有效时间设置以及时间过期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Android设备如何保证数据同步写入磁盘的实现

    Android设备如何保证数据同步写入磁盘的实现

    这篇文章主要介绍了Android设备如何保证数据同步写入磁盘的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Java中特殊运算符及其应用详解

    Java中特殊运算符及其应用详解

    当涉及位操作和位级运算时,Java 提供了一组特殊的运算符,即左移(<<)和右移(>>)运算符,下面小编就带大家深入了解一下它们的具体应用吧
    2023-08-08
  • 在Spring Boot中实现HTTP缓存的方法

    在Spring Boot中实现HTTP缓存的方法

    缓存是HTTP协议的一个强大功能,但由于某些原因,它主要用于静态资源,如图像,CSS样式表或JavaScript文件。本文重点给大家介绍在Spring Boot中实现HTTP缓存的方法,感兴趣的朋友跟随小编一起看看吧
    2018-10-10
  • java设计模式学习之代理模式

    java设计模式学习之代理模式

    这篇文章主要为大家详细介绍了java设计模式学习之代理模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • springmvc 中dao层和service层的区别说明

    springmvc 中dao层和service层的区别说明

    这篇文章主要介绍了springmvc 中dao层和service层的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 关于maven全局配置文件settings.xml解析

    关于maven全局配置文件settings.xml解析

    这篇文章主要介绍了关于maven全局配置文件settings.xml,具有很好的参考价值,希望对大家有所帮助。
    2022-03-03

最新评论