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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现批量向mysql写入数据的方法

    Java实现批量向mysql写入数据的方法

    这篇文章主要介绍了Java实现批量向mysql写入数据的方法,涉及java基于JDBC连接mysql数据库及写入数据的相关操作技巧,非常简单实用,需要的朋友可以参考下
    2017-12-12
  • Lombok的详细使用及优缺点总结

    Lombok的详细使用及优缺点总结

    最近在学Mybatis,接触到了Lombok的使用,所以写一篇文章记录一下,包括lombok的安装及使用优缺点,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • JAVA从头开始讲透、实现单例模式的探索之路

    JAVA从头开始讲透、实现单例模式的探索之路

    java单例模式是一种常见的设计模式,在它的核心结构中只包含一个被称为单例的特殊类,下面这篇文章主要介绍了JAVA从头开始讲透、实现单例模式的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-05-05
  • Java方法参数装配顺序详解

    Java方法参数装配顺序详解

    这篇文章主要介绍了Java方法参数装配顺序详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • SpringBoot获取Request对象的几种方法

    SpringBoot获取Request对象的几种方法

    HttpServletRequest 简称 Request,它是一个 Servlet API 提供的对象,用于获取客户端发起的 HTTP 请求信息,那么问题来了,在 Spring Boot 中,获取 Request 对象的方法有哪些?所以本文给大家介绍了SpringBoot获取Request对象的几种方法,需要的朋友可以参考下
    2024-11-11
  • java代理实现爬取代理IP的示例

    java代理实现爬取代理IP的示例

    今天小编就为大家分享一篇java代理实现爬取代理IP的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • java并发编程专题(十一)----(JUC原子类)数组类型详解

    java并发编程专题(十一)----(JUC原子类)数组类型详解

    这篇文章主要介绍了JAVA JUC原子类 数组类型详解的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • idea创建springboot项目(版本只能选择17和21)的解决方法

    idea创建springboot项目(版本只能选择17和21)的解决方法

    idea2023创建spring boot项目时,java版本无法选择11,本文主要介绍了idea创建springboot项目(版本只能选择17和21),下面就来介绍一下解决方法,感兴趣的可以了解一下
    2024-01-01
  • Java Swing JSlider滑块的实现示例

    Java Swing JSlider滑块的实现示例

    这篇文章主要介绍了Java Swing JSlider滑块的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 新手了解java 数组基础知识

    新手了解java 数组基础知识

    这篇文章主要介绍了Java 数组分析及简单实例的相关资料,在Java中它就是对象,一个比较特殊的对象,需要的朋友可以参考下,希望可以对你有所帮助
    2021-07-07

最新评论