ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java内置定时任务ScheduledExecutorService用法

2022-10-24 12:46:30  阅读:217  来源: 互联网

标签:java 0基础Java自学之路 基础教程 教程 参考官方教程 多态的详细介绍


public static void main(String[] args) {
        //同时执行3个
        execute(1,8);
        execute(2,15);
        execute(3,20);
        execute(4,30);

    }
    public static void execute(Integer startTime,Integer endTime){
        // 创建一个ScheduledThreadPoolExecutor线程池,核心线程数为8
        ScheduledExecutorService scheduledExecutorService = new ScheduledThreadPoolExecutor(8);
        //开始
        scheduledExecutorService.schedule(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"开始执行了.....");
            }
        }, startTime, TimeUnit.SECONDS);//单位秒
        //结束 
        scheduledExecutorService.schedule(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"执行结束了......");
            }
        }, endTime, TimeUnit.SECONDS);//单位秒
    }

总结:ScheduledExecutorService是基于线程池设计的定时任务类,在java的JUC包中,它的每个调度任务都会分配到线程池中的一个线程去执行,并发不受影响,各自执行各自的。

它有三个方法:

  1. schedule:只执行一次调度
  2. scheduleAtFixedRate:一开始就计算间隔时间,如果任务超过间隔时间,那么就直接开始下一个任务
  3. scheduleWithFixedDelay:任务无论执行多久,都要等待上一轮任务完成之后再间隔指定时间,然后才开始下一个任务

这里我们只演示了第一个方法,其他方法用法差不多。

标签:java,0基础Java自学之路,基础教程,教程,参考官方教程,多态的详细介绍
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有