我是靠谱客的博主 失眠画笔,这篇文章主要介绍Timer和ScheduledExecutorService,现在分享给大家,希望可以做个参考。

介绍

Timer和ScheduledExecutorService,可以定时周期性的执行任务
Timer、TimerTask,是被synchronized修饰的线程安全的类

使用ScheduledExecutorService代替Timer吧
多线程并行处理定时任务时,Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行,使用ScheduledExecutorService则没有这个问题。

代码

package com.aware;

import java.util.TimerTask;

/**
 * @author yanyugang
 * @description 任务一
 * @date 2020-01-18 9:08
 */
public class MyTask extends TimerTask {
    @Override
    public void run(){
        System.out.println("com.aware.MyTask run");
    }
}

package com.aware;

import java.util.TimerTask;

/**
 * @author yanyugang
 * @description 任务二
 * @date 2020-01-18 9:08
 */
public class MyTask2 extends TimerTask {
    @Override
    public void run(){
        System.out.println("com.aware.MyTask2 run");
    }
}

public static void main(String[] args){
    Timer timer=new Timer();
    timer.schedule(new MyTask(), 1000, 2000);
    timer.schedule(new MyTask2(), 1000, 2000);


    ScheduledExecutorService executorService =  Executors.newScheduledThreadPool(10);

    executorService.scheduleAtFixedRate(new MyTask(), 1, 2, TimeUnit.SECONDS);
    executorService.scheduleAtFixedRate(new MyTask2(), 1, 2, TimeUnit.SECONDS);
}

最后

以上就是失眠画笔最近收集整理的关于Timer和ScheduledExecutorService的全部内容,更多相关Timer和ScheduledExecutorService内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(122)

评论列表共有 0 条评论

立即
投稿
返回
顶部