您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页定时线程池

定时线程池

来源:筏尚旅游网

定时任务ScheduledThreadPoolExecutor:

  1. scheduleAtFixedRate 和scheduleWithFixedDelay区别
    实例代码:
    部分代码
//测试类
public class Test {
    public static void main(String[] args) {
        final ScheduleServiceImple scheduleServiceImple = new ScheduleServiceImple();
        scheduleServiceImple.startJob(5);
    }
}


public class ScheduleServiceImple implements ScheduledService {
    final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(10);

    @Override
    public void startJob(int seconds) {
        executorService.scheduleAtFixedRate(new Monitor(), 0, seconds, TimeUnit.SECONDS);
        //executorService.scheduleWithFixedDelay(new Monitor(), 0, seconds, TimeUnit.SECONDS);
    }

    @Override
    public void shutdown() {

    }
}

//执行类
public class Monitor implements Runnable {
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + "Start Time" + new Date());
        System.out.println("java.version:" + System.getProperty("java.version"));
        System.out.println("java.class.path:" + System.getProperty("java.class.path"));
        System.out.println("user.dir" + System.getProperty("user.dir"));
        try {
        	//等待5秒结束
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(Thread.currentThread().getName() + "End Time" + new Date());
        System.out.println("===============");
    }
}

解释:

固定速率连续执行:延迟时间内没有执行完,任务会启动多个并行执行
非固定速率连续执行:需要等待任务完成后在进行延迟启动任务

  • scheduleWithFixedDelay

  • scheduleAtFixedRate

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务